Javascript 旧浏览器中不支持的查找的解决方法?
由于缺少浏览器支持,我需要将2 lookbehind RegExp更改为其他内容 我有以下两种模式,其中包括一个回顾:Javascript 旧浏览器中不支持的查找的解决方法?,javascript,jquery,regex,lookbehind,Javascript,Jquery,Regex,Lookbehind,由于缺少浏览器支持,我需要将2 lookbehind RegExp更改为其他内容 我有以下两种模式,其中包括一个回顾: /(?<!^|\,)\'[^\']+\'\:/g 匹配模式”(非a'):(即“abcdef”):,如果该模式不在字符串开头或前面有, /(?<!^|\,)\'[^\']+\'\:/g 现在我知道上面的RegExp系列可以做得更优雅一些,但这些不是我要找的机器人 上面的代码在最新版本的Edge、Firefox和Chrome中进行了测试,尽管JavaScript抛
/(?<!^|\,)\'[^\']+\'\:/g
/(?<!^|\,)\'[^\']+\'\:/g
现在我知道上面的RegExp系列可以做得更优雅一些,但这些不是我要找的机器人
上面的代码在最新版本的Edge、Firefox和Chrome中进行了测试,尽管JavaScript抛出了一个错误,但即使使用Lookback,它在这些浏览器中仍然可以正常工作
但正如我所说,RegExp lookbehind只被76.49%的互联网用户使用的浏览器支持,我对只有三分之四的访问我网站的用户能够使用其中的一部分并不感兴趣
因此,我正在为上面RegExp的lookback部分寻找一种解决方法
我已经尝试了这里列出的所有解决方案:
/(?<!^|\,)\'[^\']+\'\:/g
/(?
及
/(?
具有lookahead的新模式(具有相同的功能)看起来像什么?此模式(?不声明字符串的开头或,
直接位于左侧。因此,左侧应该有一个字符,而不是,
([^,])'[^']+':
您可以使用一个捕获组来匹配要替换的内容之前的内容,并使用替换中的组来保留它
请注意,您不必转义”
:
和,
([^,])'[^']+':
比如说
str= str.replace(/([^,])'[^']+':/g, "$1':");
你也可以这样做
str= str.replace(/([^:])'[^']+',/g, "$1',");
工作得很有魅力:)谢谢
str= str.replace(/([^,])'[^']+':/g, "$1':");
str= str.replace(/([^:])'[^']+',/g, "$1',");