javascript - Firefox 中的负向后查找

标签 javascript regex

我刚刚经历了惨痛的教训,Firefox 不支持负向后查找。刚刚部署到生产中,一切看起来都很好。一旦我们的 Firefox 用户开始使用它,他们就什么也得不到。

是否有 pollyfill 或此正则表达式的替代方案?

"Item 1, Item2^, Item2a, Item3".split(/(?<!\^),/)

我试图将字符串拆分为逗号上的数组,但不是 ^,

“项目 1、项目 2^、项目 2a、项目 3”

最终应该是

[
"Item 1",
"Item2^, Item2a",
"Item3"
]

最佳答案

作为替代方案,总有适合您的旧式“双重替代品”:

r = "Item 1, Item2^, Item2a, Item3"
  .replace(/,/g, '~')
  .replace(/\^~/g, '^,')
  .split(/~ /g)
 
console.log(r)

基本上,/(?<! X) Y/ “展开”分为三个步骤:

  • 替换Y => temp
  • 替换X temp返回X Y
  • 现在temp就是你想要的

关于javascript - Firefox 中的负向后查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56585747/

相关文章:

Java-正则表达式匹配组-不带空格的字符串

java - 正则表达式将所有内容匹配到空行

php - 如何组合两个(或更多)preg_replace - PHP

javascript - 使用 Firefox 在 css 之前加载 Iframe 内容

javascript - React 按钮组件 onClick() 在页面加载时触发,而不是 onclick

javascript - 如何更改CSS属性以显示:none when I press a radio button

regex - 在 Regex 上调用 Bool 无法按文档工作

javascript - 在 HTML 和 Javascript 中创建和更新图表

javascript - 文本区域垂直大小和自动调整大小

ruby-on-rails - 用于验证仅包含字符(非特殊字符)、空格和数字的字符串的正则表达式