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

What exactly is this regular expression doing?

本文关键字:什么 正则表达式      更新时间:2023-09-26

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

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

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

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

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

  1. 等于.

例如:

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

非"&"字符

=文字"="字符

'.?可选的"."

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

会例如匹配

Foobar=.&
A=