试着理解这意味着什么:re = /([^ =&] +)(=([^&] *))?/ g

时间:2013-07-01 15:50:48

标签: javascript regex

我是JavaScript新手,我真的迷失在这段代码的作用上:

var re = /([^=&]+)(=([^&]*))?/g;
while (match= re.exec(qs))
{
var key= decodeURIComponent(match[1].replace(/\+/g,' '));
var value= match[3] ? QueryString.decode(match[3]) : '';
if (this.dict[key])
    this.dict[key].push(value);
else
    this.dict[key]= [value];
}

特别是,有人可以解释代码的var re = /([^=&]+)(=([^&]*))?/g;部分是什么吗?

3 个答案:

答案 0 :(得分:3)

此代码使用Regular Expression获取查询字符串并解析出各个参数键/值,将它们转换为易于使用的对象。

答案 1 :(得分:2)

这是一个正则表达式。

它们是一串字符,允许您匹配其他字符串中的模式以对文本主体执行复杂搜索。

在上面的例子中,正则表达式旨在匹配查询字符串中的参数,允许您分别对每个参数执行函数。

查看此网站以获取有关使用正则表达式的教程和参考:http://www.regular-expressions.info/tutorial.html

答案 2 :(得分:1)

这是Regular Expression.这些通常用于过滤掉字符串/输入,以确保它们满足您的用户输入要求(即“密码必须包含字符,数字等等。 。“但以编程方式完成”

正如您在原始帖子中所述的评论之一,this是一个“可视化”这些评论如何更容易工作的好地方。