new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");这个正则表达式麻烦高人解释一下

 我来答
百度网友0b8095e
2020-05-14
知道答主
回答量:2
采纳率:0%
帮助的人:1736
展开全部
function getParameter(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
var r = location.search.substr(1).match(reg);
if (r!=null) return (r[2]); return null;
}

以上是一个用于获取url中的查询参数的 js 方法
===========
1) 其中的正则表达式用到了字符串拼接
(^|&) 表示行首或者以&开头
name 表示传进来的变量
= 还是表示等号
([^&]*) 表示非&的任意个字符 (0到多个)

(&|$) 表示以&结束或者是行尾
===========
2) var r = location.search.substr(1).match(reg);
location.search.substr(1) 用于获得 URL 的查询部分 (?后面的内容).
比如地址栏中的地址是
r[0] = "&name=QQ&" 是整个正则表达式匹配到的内容
r[1] = "&" 是正则表达式中第一个括号匹配到的内容,即 (^|&) 匹配到的内容
r[2] = "QQ" 是正则表达式中第二个括号匹配到的内容,即 ([^&]*)匹配到的内容
r[3] = "&" 是正则表达式中最后一个括号匹配到的内容即 (&|$) 匹配到的内容

北京澜翰科技工程师组
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式