这个javascript正则表达式做了什么

时间:2014-02-12 06:24:31

标签: javascript regex

我在一些javascript代码中发现了这个正则表达式,并且不确定对字符串做了什么。

name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var state = History.getState();
var current_url = state.cleanUrl;
var results = regex.exec( current_url );

2 个答案:

答案 0 :(得分:1)

此正则表达式用于查看name中包含的参数(即paramparam[])是否存在于网址current_url中。

示例,对于名称,正则表达式是:

name     regex
----     ----- 
param    [?&]param=[^&#]*
param[]  [?&]param\[\]=[^&#]*

正则表达式会搜索是否有?#后跟param=,后跟任意数量的不是&#的字符(即参数的价值)。

答案 1 :(得分:0)

首先,它将[替换为\[,将]替换为名称中的\]。然后它将名称放在一个新的正则表达式中,该正则表达式搜索\?&后跟名称变量,后跟=,后跟任意数量的{{1} }},^&个字符。

在网址的上下文中,似乎找到一个特定的#变量。