【发布时间】:2014-10-11 21:38:49
【问题描述】:
我正在尝试从 Javascript 中的 URL (http:/a.b.com/?a=123) 的参数列表中获取“a=.*”。
/(.*[&|?])(a=.+?)(&.*)/.exec ("http:/a.b.com/?a=123&b=123")
给了我期望和期望:
["http:/a.b.com/?a=123&b=123", "http:/a.b.com/?", "a=123", "&b=123"]
但是,可能没有后面的“&arg=val”,我需要能够搜索可选的尾随“&.*”(所以在第三组的“&”之后添加“?”。因此:
/(.*[&|?])(a=.+?)(&?.*)/.exec ("http:/a.b.com/?a=123&b=123")
这让我意想不到:
["http:/a.b.com/?a=123&b=123", "http:/a.b.com/?", "a=1", "23&b=123"]
第二组现在在“=”之后只有一个字符,其余两个“23”属于第三组。
我可能做错了什么?也欢迎任何建议以不同/更好的方式做到这一点。
提前非常感谢!
【问题讨论】:
标签: javascript regex regex-greedy