正则表达式不能在FireFox中工作,如何使此正则表达式在FireFox中工作?

时间:2019-07-12 12:06:11

标签: javascript

我有以下cursor : pointer

tel

在Chrome中可以正常工作,但在FireFox中会引发异常

  

SyntaxError:无效的正则表达式组

我尝试通过删除regex标记来尝试JavaScript regular expression exception (Invalid group)给出的解决方案。

所以我的正则表达式变成了

string.match(/(?<notification_ID>\d+)/g)

但是,现在它返回?

我要返回基于字符串的通知ID

例如。 https://example.com/here-comes-a-path/#!/notification-14应该返回$location.path().match(/(<notification_ID>\d+)/g)

如何制作正则表达式,使其能在所有浏览器中正常工作?


如果您使用的是Chrome,则此代码段将起作用

null

2 个答案:

答案 0 :(得分:2)

这样的正则表达式将起作用:

notification-(\d+)

它与notification-匹配,然后在(\d+)中捕获一个或多个数字。

const regex = /notification-(\d+)/
const string = "https://example.com/here-comes-a-path/#!/notification-14"

const matches = string.match(regex);
console.log(matches[1]);

答案 1 :(得分:0)

var string = 'https://example.com/here-comes-a-path/#!/notification-14';

console.log(string.match(/notification-(\d+)/g))

这就是您必须使用的,以便它可以在所有浏览器中使用。自ES2018起,命名组是JS的新功能,请参见here

Firefox尚未实现,请参见their bug report here

有关更多信息,另请参见this post