[英]JavaScript - Regex: URL has a param
我正在嘗試為php的isset ($_GET[param])
創建一個模擬,但是對於JavaScript。
這么久,我明白了
[?&]param[&=]
但是如果param位於URL的末尾(example.com?param),那么這個正則表達式將不起作用。
你可以在這里玩它: https : //regex101.com/r/fFeWPW/1
如果要確保匹配以&
, =
或字符串結尾結束,可以將[&=]
字符類替換為匹配&
, =
或結尾的(?:[&=]|$)
替換組string(請注意$
不能放在字符類中,因為它會在那里失去其特殊含義並將被視為$
符號),或者您可以使用否定前瞻(?![^&=])
如果在當前位置之后沒有&
或=
,則匹配,這可能比交替組更有效。
所以,在你的情況下,它看起來像
[?&]param(?:[&=]|$)
要么
[?&]param(?![^&=])
查看正則表達式演示
JS演示:
var strs = ['http://example.com?param', 'http://example.com?param=123', 'http://example.com?param&another','http://example.com?params']; var rx = /[?&]param(?![^&=])/; for (var s of strs) { console.log(s, "=>", rx.test(s)) }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.