匹配 地址栏参数的的正则表达式,求解释...
(function(){//定义外部接口//Request开放接口给外部,提供两个接口:getParameter和getParameterValues//这样外部的Jav...
(function(){
//定义外部接口
//Request开放接口给外部,提供两个接口:getParameter和getParameterValues
//这样外部的JavaScript文件就可以通过调用Request.getParameter()来执行相应的动作
Request = { getParameter:getParameter,
getParameterValues:getParameterValues
};
//得到URL后的参数,例如URL:http://abc?x=1&y=2
//那么getParameter("x") 得到1
function getParameter(paraName,wnd)
{
//如果不提供wnd参数,则默认为当前窗口
if(wnd == null) wnd = self;
//得到地址栏上“?”后边的字符串
var paraStr = wnd.location.search.slice(1);
//根据“&”符号分割字符串
var paraList = paraStr.split(/\&/g);
for (var i = 0; i < paraList.length; i++)
{
//用正则表达式判断字符串是否是“paraName=value”的格式
//关于正则表达式的内容在本书的第10章中有较详细的讨论
var pattern = new RegExp("^"+paraName+"[?=\\=]","g");
if(pattern.test(paraList[i]))
{
//若是,则返回解码后的value的内容
return decodeURIComponent(paraList[i].split(/\=/g)[1]);
}
}
}
//如果有多个重复的paraName的情况下,下面这个方法返回一个包含了所有值的数组
//例如http://abc?x=1&x=2&x=3 ,getParameterValues("x")得到[1,2,3]
function getParameterValues(paraName,wnd)
{
if(wnd == null) wnd = self;
var paraStr = wnd.location.search.slice(1);
var paraList = paraStr.split(/\&/g);
var values = new Array();
for (var i = 0; i < paraList.length; i++)
{
//上面的判断部分和getParameter()方法类似
//区别是对应每一个paramName的value有多个
var pattern = new RegExp("^"+paraName+"[?=\\=]","g");
if(pattern.test(paraList[i]))
{
//将所有满足paramName=value的结果的value都放入一个数组中
values.push(decodeURIComponent(paraList[i].split(/\=/g)[1]));
}
}
//返回结果数组
return values;
}
})();
new RegExp("^"+paraName+"[?=\\=]","g");这个正则什么意思..[]里的:“?=\\=” 不理解。。
这个正则可以匹配:abc=123,可以匹配abc?123,可以匹配abc\\123.请问大家见过这样的参数吗?
感激不尽啊。。谢谢各位大侠啦。。 展开
//定义外部接口
//Request开放接口给外部,提供两个接口:getParameter和getParameterValues
//这样外部的JavaScript文件就可以通过调用Request.getParameter()来执行相应的动作
Request = { getParameter:getParameter,
getParameterValues:getParameterValues
};
//得到URL后的参数,例如URL:http://abc?x=1&y=2
//那么getParameter("x") 得到1
function getParameter(paraName,wnd)
{
//如果不提供wnd参数,则默认为当前窗口
if(wnd == null) wnd = self;
//得到地址栏上“?”后边的字符串
var paraStr = wnd.location.search.slice(1);
//根据“&”符号分割字符串
var paraList = paraStr.split(/\&/g);
for (var i = 0; i < paraList.length; i++)
{
//用正则表达式判断字符串是否是“paraName=value”的格式
//关于正则表达式的内容在本书的第10章中有较详细的讨论
var pattern = new RegExp("^"+paraName+"[?=\\=]","g");
if(pattern.test(paraList[i]))
{
//若是,则返回解码后的value的内容
return decodeURIComponent(paraList[i].split(/\=/g)[1]);
}
}
}
//如果有多个重复的paraName的情况下,下面这个方法返回一个包含了所有值的数组
//例如http://abc?x=1&x=2&x=3 ,getParameterValues("x")得到[1,2,3]
function getParameterValues(paraName,wnd)
{
if(wnd == null) wnd = self;
var paraStr = wnd.location.search.slice(1);
var paraList = paraStr.split(/\&/g);
var values = new Array();
for (var i = 0; i < paraList.length; i++)
{
//上面的判断部分和getParameter()方法类似
//区别是对应每一个paramName的value有多个
var pattern = new RegExp("^"+paraName+"[?=\\=]","g");
if(pattern.test(paraList[i]))
{
//将所有满足paramName=value的结果的value都放入一个数组中
values.push(decodeURIComponent(paraList[i].split(/\=/g)[1]));
}
}
//返回结果数组
return values;
}
})();
new RegExp("^"+paraName+"[?=\\=]","g");这个正则什么意思..[]里的:“?=\\=” 不理解。。
这个正则可以匹配:abc=123,可以匹配abc?123,可以匹配abc\\123.请问大家见过这样的参数吗?
感激不尽啊。。谢谢各位大侠啦。。 展开
3个回答
景联文科技
2024-06-11 广告
2024-06-11 广告
景联文科技是一家专业AI数据标注公司。目前在全国范围拥有四个大型数据处理基地,智能标注平台涵盖标注工作台和产能管理体系,提供完整的语音、图像、文本、视频的全领域数据处理能力,通过ISO9001、ISO27001、ISO27701等国际认证,...
点击进入详情页
本回答由景联文科技提供
展开全部
[] 表示某个范围里的字符
[a-z] 可以匹配 a到z 一个范围
[a-z] 可以匹配 a到z 一个范围
更多追问追答
追问
谢谢你及时给予的答案,这个我明白,可他[?=\\=],这么说就是可以匹配?,\,=.可地址栏参数有这样的吗?
追答
有啊
http://zhidao.baidu.com/question/234899704.html?fr=im100400
你看上面那个 URL 里 不就有吗html?fr=im100400
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[?=\\=]表示匹配?, =或者\中任意一个。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询