我找了一些代码,发现了以下的正则表达式:这个正则表达式究竟做了什么?
var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '')
这是取查询字符串和更换,以与符号或问号以空格开头的所有值?有没有更多的事情发生在我看不到的地方?
你是合乎逻辑的解释是非常感谢和帮助获得更多的理解正则表达式。谢谢!
我找了一些代码,发现了以下的正则表达式:这个正则表达式究竟做了什么?
var querystring = querystring.replace(/[^&]+=\.?(?:&|$)/g, '')
这是取查询字符串和更换,以与符号或问号以空格开头的所有值?有没有更多的事情发生在我看不到的地方?
你是合乎逻辑的解释是非常感谢和帮助获得更多的理解正则表达式。谢谢!
这似乎从查询字符串,其值是除去那些参数:
.
例如:
"remove1=&remove2=.&keep1=..&keep2=a&keep3=b".replace(/[^&]+=\.?(?:&|$)/g, '')
// returns "keep1=..&keep2=a&keep3=b"
我看到,它正在清理字符串中的空值。优秀的答复,非常感谢!干杯! – 2012-04-27 12:02:32
[^&]+
一个或多个非 “&” 字符
=
文字 “=” 字符
\.?
一个可选的 “”
(?:&|$)
一个“&”字符或字符串的末尾
将是例如匹配
Foobar =。 &
A =
这将删除所有匹配/[^&]+=\.?(?:&|$)/g(第二个参数是空字符串而不是空格)的字符串。 – GillesC 2012-04-27 10:59:26
为什么querystring被搜索/替换并定义在同一行上? – 2012-04-27 11:03:36
它在表单处理脚本上,查询字符串在我上面发布的行之前被序列化:'var querystring = $(this).serialize();'我应该这么说。 – 2012-04-27 11:06:17