因此,您可以使用content = content.replace(/(?![^<]>)"([^"=]?)"(?!>)/g, '„$1"'); ^^^^^请注意,(?:[\"])等于". [^"=]?匹配1次或0次出现的除"和=以外的其他字符.请参见 regex演示.I need to modify the following javascript regex because the negative lookbehind in it throws an error in firefox:content = content.replace(/(?![^<]*>)(?:[\"])([^"]*?)(?<!=)(?:[\"])(?!>)/g, '„$1"');Does anyone have an idea and can help me out? 解决方案 Lookbehinds are only available in browsers supporting ECMA2018 standard, and that means, only the latest versions of Chrome can handle them.To support the majority of browsers, convert your pattern to only use lookaheads.The (?<!=) negative lookbehind makes sure there is no = immediately to the left of the current location. [^"] is the atom that matches that character (note that ? quantifier makes it optional, but " that is before [^"] can't be = and there is no need restricting that position).So, you may usecontent = content.replace(/(?![^<]>)"([^"=]?)"(?!>)/g, '„$1"'); ^^^^^Note that (?:[\"]) is equal to ". [^"=]? matches 1 or 0 occurrences of a char other than " and =.See the regex demo. 这篇关于Javascript正则表达式(负)后视无法在Firefox中工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
11-01 22:28