Javascript 这个正则表达式到底在做什么?
我正在查看一些代码,发现以下正则表达式:Javascript 这个正则表达式到底在做什么?,javascript,regex,Javascript,Regex,我正在查看一些代码,发现以下正则表达式: var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '') 这是使用查询字符串并用空格替换所有以“与”或“问号”开头的值吗?这里还有我看不到的事情吗 您的逻辑解释是非常感谢,并有助于获得更多的了解正则表达式。谢谢 [^&]+一个或多个非“&”字符 =文字“=”字符 \.?一个可选的“.” (?:&|$)一个“&”字符或字符串的结尾 你会匹配吗 Foobar=.& A= [
var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '')
这是使用查询字符串并用空格替换所有以“与”或“问号”开头的值吗?这里还有我看不到的事情吗
您的逻辑解释是非常感谢,并有助于获得更多的了解正则表达式。谢谢
[^&]+
一个或多个非“&”字符
=
文字“=”字符
\.?
一个可选的“.”
(?:&|$)
一个“&”字符或字符串的结尾
你会匹配吗
Foobar=.&A=
[^&]+
一个或多个非“&”字符
=
文字“=”字符
\.?
一个可选的“.”
(?:&|$)
一个“&”字符或字符串的结尾
你会匹配吗
Foobar=.&A=
它似乎从查询字符串中删除了这些参数,其值为:
"remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=\.?(?:&|$)/g, '')
// returns "keep1=..&keep2=a&keep3=b"
它似乎从查询字符串中删除了这些参数,其值为:
"remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=\.?(?:&|$)/g, '')
// returns "keep1=..&keep2=a&keep3=b"
这将删除与/[^&]+=\.?(?:&|$)/g(第二个参数是空字符串而不是空格)匹配的所有字符串。为什么要在同一行上搜索/替换和定义querystring?它位于表单处理脚本上,querystring在我上面发布的行之前序列化:
var querystring=$(This).serialize();
我应该这么说。匹配abc=.&
,a=
(假设最后匹配),==
(假设最后匹配)和。
,但不是&abc=.
,=
或abc=.&
(假设最后匹配)。@Neil看来它正在从它处理的表单中清除空值,这听起来正确吗?这将删除所有与/[^&]+=\.?(?:&$)/g匹配的字符串(第二个参数是空字符串而不是空格),仅此而已。为什么要在同一行上搜索/替换和定义querystring?它位于表单处理脚本上,querystring是在我在上面发布的行之前序列化的:var querystring=$(this.serialize()
我应该这么说。匹配abc=.&
,a=
(假设最后匹配),==
(假设最后匹配)和。
,但不是&abc=.
,=
或abc=.&
(假设最后匹配)。@Neil看来它正在从它处理的表单中清除空值,听起来对吗?我明白了,它正在清除字符串中的空值。非常感谢您的回复!干杯我明白了,它正在清除字符串中的空值。非常感谢您的回复!干杯