这个正则表达式究竟在做什么?

时间:2012-04-27 10:58:24

标签: javascript regex

我正在查看一些代码并找到以下正则表达式:

var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '')

这是否采用查询字符串并用空格替换所有以&符或问号开头的值?还有更多的事情发生在我看不到的地方吗?

非常感谢您的逻辑解释,并帮助您更好地理解正则表达式。谢谢!

2 个答案:

答案 0 :(得分:3)

似乎从查询字符串中删除了那些值为:

的参数
  1. 等于.
  2. 例如:

    "remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=\.?(?:&|$)/g, '')
    // returns "keep1=..&keep2=a&keep3=b"
    

答案 1 :(得分:2)

[^&]+一个或多个非“&”字符

=文字“=”字符

\.?可选“。”

(?:&|$) a“&”字符或字符串的结尾

例如匹配

  

Foobar的=安培;
  A =