Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式(负)查找在firefox中不起作用_Javascript_Regex_Firefox_Regex Lookarounds - Fatal编程技术网

Javascript正则表达式(负)查找在firefox中不起作用

Javascript正则表达式(负)查找在firefox中不起作用,javascript,regex,firefox,regex-lookarounds,Javascript,Regex,Firefox,Regex Lookarounds,我需要修改以下javascript正则表达式,因为其中的负lookback在firefox中抛出错误: content = content.replace(/(?![^<]*>)(?:[\"])([^"]*?)(?<!=)(?:[\"])(?!>)/g, '„$1“'); content=content.replace(/(?![^)(?:[\”])([^“]*?)(?)/g,“$1”); 有人有什么想法可以帮我吗?Lookback断言是ES2018的一部分。fire

我需要修改以下javascript正则表达式,因为其中的负lookback在firefox中抛出错误:

content = content.replace(/(?![^<]*>)(?:[\"])([^"]*?)(?<!=)(?:[\"])(?!>)/g, '„$1“');
content=content.replace(/(?![^)(?:[\”])([^“]*?)(?)/g,“$1”);

有人有什么想法可以帮我吗?

Lookback断言是ES2018的一部分。firefox还不支持它们,这就是为什么会出现错误

Chrome从版本开始就支持它们,您可以在Node.js>=6.4中使用和谐标志,或者在>=9中不使用任何标志


您可以查看提案和浏览器支持

2020年7月1日更新

从FireFox 78版本开始,
RegExp
最终支持lookbehinds、dotAll
s
标志、Unicode转义序列和命名捕获,请参阅:

SpiderMonkey中的新引擎,增加了对dotAll标志、Unicode转义序列、查找引用和命名捕获的支持


非常感谢您,FireFox开发者!!!与您的正则表达式完全相同(?![^)”([^”]*?)(?2年后,Firefox终于迎头赶上。将于2020年6月底发布的FF78中将包含ES2018 RegExp功能:

您知道解决此问题的方法吗?我正试图在不留神的情况下重写regex,但不知道如何进行。发布您想要匹配的文本和预期结果,我们将能够帮助您。StiWell在Firefox 69中不受支持:在Firefox 77.0.1(64位)中仍然不受支持。耶,进步!您只需将
=
移动到否定字符类,
/(?![^)”([^“=]?)”(?!>)/g
请在@bradlis7为Firefox中的问题投票。您如何投票?(我登录bugzilla已经有一段时间了,但我仍然没有看到投票按钮。我确实开始关注它——这是同一件事吗?)这似乎是为数不多的没有垫片的事情之一。@DarrenCook登录后,在“详细信息面板”中显示“27票[投票]“。这是一个笨拙的界面,因为你必须进入投票页面,检查问题,然后提交。也许现在真的很快:那么这两个正则表达式的工作原理是一样的,对吗?以前的正则表达式:
(?![^)(?:[\”)([^”]*?)(?)
新正则表达式:
([^”=]*)((?!>)
@Cla如果不是这样的话,我就不会发布了。@EugeneBarsky-谢谢你的排错。
 (?! [^<]* > )
 "
 (                             # (1 start)
      (?:
           [^"=]+ 
        |  
           = 
           (?! " )
      )*
 )                             # (1 end)
 "
 (?! > )