繁体   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