我有这个正则表达式:
var message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');
它适用于Chrome和cturns这个文本......
'some text <a contenteditable="false" data-pageid="2">some more text</a>'
......进入本文......
'some text @[2]'
然而,对于Firefox它不起作用。也没有错误通知。它似乎只是“忽略”了正则表达式。有什么想法吗?
答案 0 :(得分:0)
基于具有同名的变量将此声明为 new 变量是否有意义?
原件:
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 36.0.1(及其他人,请参阅上面的评论)上,这会将message
设置为some text @[2]
。
删除第二个声明:
var message = 'some text <a contenteditable="false" data-pageid="2">some more text</a>'
message = message.replace(/<a.+?data-pageid=(?:"|')(\d+)(?:"|').+?<\/a>/g, '@[$1]');
这仍然适用于原始工作的地方,但可能在处理范围不同的地方工作。我猜这个问题因为我无法重现它。
为了更好地解决问题,请提供您的Firefox版本和示例实现。