我试图为php isset ($_GET[param])
创建一个模拟器,但是用于JavaScript。
这么久,我得到了这个
[?&]param[&=]
但如果param位于URL(example.com?param)的末尾,则此正则表达式无法正常工作。
你可以在这里玩它:https://regex101.com/r/fFeWPW/1
答案 0 :(得分:3)
如果您想确保匹配以&
,=
或字符串结尾结束,则可以将[&=]
字符类替换为(?:[&=]|$)
替换组,将匹配&
,=
或字符串结尾(请注意,$
不能放在字符类中,因为它会失去其特殊含义,并将被视为{{1}如果在当前位置之后没有$
或(?![^&=])
,则可能会使用未通过匹配的否定前瞻&
,这可能比交替小组。
所以,在你的情况下,它看起来像
=
或
[?&]param(?:[&=]|$)
JS演示:
[?&]param(?![^&=])