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'。 "[^&]*"就是零个或多个除"&"之外任意字符。