function getQuery(key) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"), r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]) return null}这段代码是获取URL上的参数的封装函数,他是用正则匹配的,我正则比较弱,麻烦社区上的大神帮我解读下(^|&): 表示什么含义=([^&]*)(&|$) 表示什么含义
4 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
补充楼上:
如果字符串匹配到了表达式,会返回一个数组,数组的第一项是进行匹配完整的字符串,之后的项是用圆括号捕获的结果。如果没有匹配到,返回null
Helenr
TA贡献1780条经验 获得超4个赞
你的程序不能正常工作吧,形参key没有被使用,name这个变量不知道什么地方来的。
估计正确的代码是
function getQuery(keyName) {
var reg = new RegExp("(^|&)" + keyName+ "=([^&]*)(&|$)"),
r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2])
return null
}
这个函数的功能是在URI中查询keyName的值。
在match匹配后,返回数组结构是
[整个匹配项,头或者&,keyName的值(就是=后面有效部分),尾或者&,index:匹配的位置,input:整个输入]
添加回答
举报
0/150
提交
取消