getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if(r != null) {
return unescape(r[2]);
}
return null;
}

正常的页面可以调用这个方法,window.location.search获取到当前页面从问号 (?) 开始的 URL(查询部分)

随后配合正则就可以筛选出想要的参数,比如链接:https://i.cnblogs.com/EditPosts.aspx?hello=123

这么使用:  getQueryString(‘hello’)

就可以直接获取到  “123”

--------------------------------------------------------------

这个方法在vue单页面中是不可用的,比如vue的hash模式,链接是含有#号且在?号之前的

比如: http://192.168.1.181:8080/#/bookDetail?antBook=3

如果这时候调用方法:this.getQueryString(‘antBook’),是会返回null的,主要原因是该死的#号,他会让window.location.search直接失效,阻碍我们导致

根本拿不到我们想要的antBook的值

这个时候也很简单,我们只要相对的改改代码,让从问号 (?) 开始变为从#号开始的 URL(锚)

也就是将(window.location.search)更改为(window.location.hash)

这样在vue单页面中,就可以顺利取到参数值了

--------------------------------------------------------------

最后,由于我在vue的hash模式下进行了微信分享,链接被我处理了一下

比如: http://192.168.1.181:8080/?isshare=1#/bookDetail?antBook=3

这时候用上面的方法去取 antBook 的值还是取不到的

需要对 window.location.hash 进行处理

这次的锅要#后面的?号来背

综上

js 截取url中的参数的更多相关文章

  1. Js把URL中的参数解析为一个对象

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. js 获取url中的参数 修改url 参数 移除url参数

    js 获取url中的参数 修改url 参数 移除url参数 var jsUrlHelper = { getUrlParam : function(url, ref) { var str = " ...

  3. js获得URL中的参数

    js获得URL中的参数 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + &quo ...

  4. js获取url中的参数,并保证获取到的参数不乱码

    //网上比较经典的js获取url中的参数的方法 function getQueryString(name) { var reg = new RegExp("(^|&)" + ...

  5. js获取URL中的参数

    js获取URL中的一些参数的意思 location对象 含有当前URL的信息. 属性 href 整个URL字符串. protocol 含有URL第一部分的字符串,如http: host 包含有URL中 ...

  6. APPCAN开发笔记:html页面之间的参数传递:使用js获取url中的参数,以及在APPCAN中不能使用的解决方法

    用PHP的GET/POST方式来传递方式已经是司空见惯了,但是如果我的页面是一个静态的html的页面,想传递参数的时候要怎么办呢?在APPCAN的开发中我们会经常遇到这样的问题,因为所有的页面都是静态 ...

  7. js获取url中的参数对象、js生成带参数的url

    // 获取url中的参数,并返回一个对象 $.getRequestData = function() { var url = location.search; //获取url中"?" ...

  8. jQuery使用serialize()表单序列化时出现中文乱码问题&js获取url中的参数,并保证获取到的参数不乱码

    序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComp ...

  9. js获取url中的参数(解决中文乱码)

    这个是封装好的方法: function getQueryString(name) { var reg = new RegExp("(^|&)" + name + " ...

随机推荐

  1. 微信公众号开发上传图文素材带有卡片小程序报错:errcode=45166,errmsg = invalid content hint

    微信公众号开发自从支持允许在群发图文中插入小程序,方便了小程序的运营及推广.最近在三方服务开发中,要支持图文素材插入小程序遇到了一个很是棘手的问题.官方给出的插入小程序的示例支持文字.图片.卡片.如下 ...

  2. Django添加生产环境配置

    在初始化阶段,Django会帮我们创建一个settings.py目录,所有Django的配置都在这个模块中,这样就会产生一些问题,比如同一份配置怎么来更好的区分开发环境和线上环境.当然可以在setti ...

  3. Promise 解决同步请求问题

    在写小程序和vue项目中,由于 api 不提供 同步请求,因此,可以通过  Promise 来实现 同步请求操作 在这里 对于 Promise 不太了解的小伙伴 可以查找 Promise 的api 文 ...

  4. 57 c++ 读取二进制文件: 以.raw后缀的TDF_Voxel_Size文件为例

    0 引言 毕业设计中用到了.raw格式的文件,需要将该文件按照M*N*P的矩阵格式加载到内存中.采用 #include <fstream> 中的FILE* 加载,并针对数据占用字节数,以 ...

  5. Spring-Security (学习记录七)--实现FilterInvocationSecurityMetadataSource的类将无法切入声明式事物

    目录 1 查看继承关系 2 说明 3 查看源码: 实现了FilterInvocationSecurityMetadataSource 的类将无法切入声明式事物. 原因: 1 查看继承关系 先查看Fil ...

  6. faster-rcnn代码阅读-roi-data层

    这一节讲述roi-data层,和这一层有关的结构图如下: roi-data层的prototxt定义如下: layer { name: 'roi-data' type: 'Python' bottom: ...

  7. topjui.common.js

    function getTabWindow() { var curTabWin = null; if (topJUI.config.aloneUse) { curTabWin = window; } ...

  8. 剑指offer——10跳台阶演变

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   题解: 纯找规律题:   class Solution { public: ...

  9. Ubuntu下安装fcitx+搜狗输入法

    转载自:http://www.linuxidc.com/Linux/2013-07/87062.htm 目标:在Ubuntu 13.04以及基于Ubuntu的发行版上安装fcitx小企鹅输入法,并安装 ...

  10. jquery下拉框应用

    <!DOCTYPE html> <html lang="en"> <head> <script src="http://code ...