簡體   English   中英

JavaScript - 正則表達式:URL有一個參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM