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