Cla*_*Cla 9 javascript regex firefox regex-lookarounds
我需要修改以下javascript正则表达式,因为它中的负面lookbehind在firefox中引发错误:
content = content.replace(/(?![^<]*>)(?:[\"])([^"]*?)(?<!=)(?:[\"])(?!>)/g, '„$1“');
Run Code Online (Sandbox Code Playgroud)
有没有人有想法可以帮助我?
提前致谢!
Wik*_*żew 14
Lookbehinds仅适用于支持ECMA2018标准的浏览器,这意味着只有最新版本的Chrome才能处理它们.
要支持大多数浏览器,请将模式转换为仅使用前瞻.
该(?<!=)负回顾后确保没有=立即到当前位置的左侧.[^"]是与该字符匹配的原子(请注意,?量词使其成为可选的,但这"是之前[^"]不可能的,=并且不需要限制该位置).
所以,你可以使用
content = content.replace(/(?![^<]>)"([^"=]?)"(?!>)/g, '„$1"');
^^^^^
Run Code Online (Sandbox Code Playgroud)
注意(?:[\"])等于".[^"=]?匹配除了"和之外的1或0次出现的char =.
请参阅正则表达式演示.