JavaScript regexp匹配值可能不存在

时间:2016-10-13 08:14:15

标签: javascript regex string-matching

考虑我需要匹配的网址,其中可能包含或不包含查询参数enforceLogin

为了确定在URL中是否存在enforceLogin,我写了这样的正则表达式:

/(enforceLogin=(\d+))?/.exec('something?enforceLogin=1')

我希望它可以匹配,但它会返回

["", undefined, undefined]

但是,在我将$添加到regexp的末尾或删除regexp末尾的?后,它正确匹配。

问题出现了,为什么第一个正则表达式无效?该字符串实际上包含enforceLogin=1

如果regexp尾部的问号使得内容更加懒散,为什么要将$添加到最后使其再次起作用?

0 个答案:

没有答案