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