0
我想从JavaScript中的URL(http:/a.b.com/?a = 123)中的参数列表中获得“a =。*”。在javascript中贪婪与尾随贪婪正则表达式
/(.*[&|?])(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"]
第二组现在只有1“=”之后的字符,其余两个“23”是第三组的一部分。这
我可能是做错了?也欢迎任何建议来做这个不同/更好的方式。
非常感谢!
我能理解第二个选项,并用它和工作!我不熟悉?: - 所以只需要第二个选项。 (感谢指针? - 将检查出来)。伟大的东西卢卡斯,这是一个轻松的快速反应! – user1055761 2014-10-11 21:48:08
不客气。仅供参考,'(?:...)'相当于'(...)',但它不捕获它的值。它仅用于简单分组。 – 2014-10-11 21:49:59
哦,所以人们也可以[&?] a =(。+?)[&| $] +? – user1055761 2014-10-11 21:54:52