我有以下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
答案 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。