这个正则表达式到底在做什么



我正在查看一些代码,发现了以下正则表达式:

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

这是采用查询字符串并将所有以 & 符号或问号开头的值替换为空格吗?这里还有更多我没有看到的事情吗?

非常感谢您的逻辑解释,并有助于对正则表达式有更多的了解。谢谢!

它似乎从查询字符串中删除了这些参数,其值为:

  1. 等于.

例如:

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

非"&"字符

=文字"="字符

.?可选的"."

(?:&|$)"&"字符或字符串末尾

会例如匹配

Foobar=.&
A=

最新更新