function getUrlParam(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r!=null) {
return unescape(r[2]);
}
return null;
}
alert(getUrlParam("Id"));
如当前的URL是http://localhost/test/Untitled-11.html?Id=12456,那么函数返回12456,
正则表达式"(^|&)"+ name +"=([^&]*)(&|$)"是这个函数的关键
函数的返回值r[2],代表了正则表达式中的第二个匹配 ([^&]*)。 为什么"([^&]*)"能匹配12456 呢?
根据正则表达式的语法,[^xyz] 负值字符集合。匹配未包含的任意字符。 例如, '[^abc]' 可以匹配 "plain" 中的'p'。 "[^&]*"就是零个或多个除"&"之外任意字符。
博客展示了一个名为getUrlParam的函数,用于从URL中获取指定参数的值。该函数利用正则表达式匹配参数,关键正则表达式为'(^|&)' + name + '=([^&]*)(&|$)'。通过分析正则语法,解释了'([^&]*)'能匹配参数值的原因。
2671

被折叠的 条评论
为什么被折叠?



