关于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;
}
能帮我解释下每一步骤的意思吗? 展开
{
var re = new RegExp(param+"=([^\\&]+)","i");
var m;
if (m = window.location.search.substr(1).match(re))
{
return unescape(m[1]);
}
return null;
}
能帮我解释下每一步骤的意思吗? 展开
1个回答
展开全部
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);
{
//根据参数 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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询