匹配 地址栏参数的的正则表达式,求解释...

(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.请问大家见过这样的参数吗?
感激不尽啊。。谢谢各位大侠啦。。
展开
 我来答
百度网友a148267
2011-03-11 · TA获得超过2255个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:355万
展开全部
我觉得你问的不是[]的意思吧,regex中?和\都是有特殊意义的,要作为匹配对象使用,必须转义,即用转义字符\。\\即\字符,?之所以没加,是因为它在[]的开头,如果不是在[]的开始那么必须转义,即\?。
景联文科技
2024-06-11 广告
景联文科技是一家专业AI数据标注公司。目前在全国范围拥有四个大型数据处理基地,智能标注平台涵盖标注工作台和产能管理体系,提供完整的语音、图像、文本、视频的全领域数据处理能力,通过ISO9001、ISO27001、ISO27701等国际认证,... 点击进入详情页
本回答由景联文科技提供
无双钟情一生红
2011-03-09 · TA获得超过161个赞
知道答主
回答量:93
采纳率:0%
帮助的人:52.8万
展开全部
[] 表示某个范围里的字符

[a-z] 可以匹配 a到z 一个范围
更多追问追答
追问
谢谢你及时给予的答案,这个我明白,可他[?=\\=],这么说就是可以匹配?,\,=.可地址栏参数有这样的吗?
追答
有啊  
http://zhidao.baidu.com/question/234899704.html?fr=im100400
你看上面那个 URL 里 不就有吗html?fr=im100400
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bitterbeans
2011-03-10 · TA获得超过2129个赞
知道小有建树答主
回答量:607
采纳率:0%
帮助的人:554万
展开全部
[?=\\=]表示匹配?, =或者\中任意一个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式