关于javascript的RegExp问题

functiongetLastURLValue(param){varre=newRegExp(param+"=([^\\&]+)","i");varm;if(m=wind... function getLastURLValue(param)
{
var re = new RegExp(param+"=([^\\&]+)","i");
var m;
if (m = window.location.search.substr(1).match(re))
{
return unescape(m[1]);
}
return null;
}

能帮我解释下每一步骤的意思吗?
展开
 我来答
百度网友a435633
2010-02-02 · TA获得超过1234个赞
知道大有可为答主
回答量:1018
采纳率:0%
帮助的人:0
展开全部
function getLastURLValue(param)
{
//根据参数 param 生成正则表达式对象,匹配以&分割的 name=value 这样的字符串,value是表达式括号里面的内容
//其实这个表达式有一小点问题,如果 param 里面有用于正则的特殊字符,就不会出结果了
var re = new RegExp(param+"=([^\\&]+)","i");
var m; //这个可以不写
//用表达式去匹配当前的URL
if (m = window.location.search.substr(1).match(re))
{
//如果有匹配(m 不为空),返回 name=value 中的 value
return unescape(m[1]);
}
//没有匹配就返回 null
return null;
}

如果当前的 url 是 http://localhost/test?a=1&b=2

getLastURLValue('b') 结果应该是 2

其实这样的问题不用正则更简单,
以下是取当前URL所有参数的函数
function getAllParams(){
var params = {};
var datum = window.location.search.substring(1).split("&");
for(var i=0; i < datum.length; i++) {
val = datum[i].split("=");
params[val[0]] = val[1];
}
return params;
}

用法
var param = getAllParams();
alert(param.b);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式