new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");这个正则表达式麻烦高人解释一下
1个回答
展开全部
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] = "&" 是正则表达式中最后一个括号匹配到的内容即 (&|$) 匹配到的内容
北京澜翰科技工程师组
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] = "&" 是正则表达式中最后一个括号匹配到的内容即 (&|$) 匹配到的内容
北京澜翰科技工程师组
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询