Javascript 正则表达式不在Firefox中工作,但在Chrome中工作

Javascript 正则表达式不在Firefox中工作,但在Chrome中工作,javascript,regex,google-chrome,firefox,mozilla,Javascript,Regex,Google Chrome,Firefox,Mozilla,我有一个正则表达式: var message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]'); 然而,对于Firefox来说,它不起作用。也没有错误通知。它似乎只是“忽略”了正则表达式。有什么想法吗?基于同名变量将其声明为新变量有意义吗 原件: var message = 'some text <a contenteditable="false" data-pagei

我有一个正则表达式:

var message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');

然而,对于Firefox来说,它不起作用。也没有错误通知。它似乎只是“忽略”了正则表达式。有什么想法吗?

基于同名变量将其声明为新变量有意义吗

原件:

var message = 'some text <a contenteditable="false" data-pageid="2">some more text</a>'
var message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');
这仍然适用于原始工作的地方,但可能适用于处理范围不同的地方。我在猜测这个问题,因为我无法重现它


为了更好地解决此问题,请提供您的Firefox版本和示例实现。

var message=message.replace(/Works in Firefox 36.0.4:我是否建议使用DOM解析器?表达式是否在标记中而不是单独的.js文件中?如果是,则可能是尖括号转义的问题。an(jQuery)。
'some text @[2]'
var message = 'some text <a contenteditable="false" data-pageid="2">some more text</a>'
var message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');
var message = 'some text <a contenteditable="false" data-pageid="2">some more text</a>'
message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');