我正在查看一些代码,发现了以下正则表达式:
var querystring = querystring.replace(/[^&]+=.?(?:&|$)/g, '')
这是采用查询字符串并将所有以 & 符号或问号开头的值替换为空格吗?这里还有更多我没有看到的事情吗?
非常感谢您的逻辑解释,并有助于对正则表达式有更多的了解。谢谢!
它似乎从查询字符串中删除了这些参数,其值为:
- 空
- 等于
.
例如:
"remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=.?(?:&|$)/g, '')
// returns "keep1=..&keep2=a&keep3=b"
[^&]+
一个或多个非"&"字符
=
文字"="字符
.?
可选的"."
(?:&|$)
"&"字符或字符串末尾
会例如匹配
Foobar=.&
A=