JS Regex lookbehind无法在Firefox和Safari中使用

韦德沃德

我有以下正则表达式,它在chrome中工作,但在Firefox或Safari浏览器中导致错误。我需要对其进行修改以使其正常工作。谁能帮助一个可怜的灵魂?提前致谢!

正则表达式: /(?=<tag>)(.*?)(?<=<\/tag>)/

基本上,我必须匹配两者之间的任何字符<tag></tag>并且需要保留两个标签。我将此表达式用作array.split的参数。

输入: "The quick brown <tag>fox</tag> jumps over the lazy <tag>dog</tag>"

操作: input.split(regex)

输出: ["The quick brown ", "<tag>fox</tag>", " jumps over the lazy ", "<tag>dog</tag>"]

代码疯子

firefox和safari尚不支持向后搜索,您可以使用捕获组(使用捕获组,以便将其拆分的模式也将添加到输出中)并拆分 <tag> </tag>

let str = "The quick brown <tag>fox</tag> jumps over the lazy <tag>dog</tag>"

let regex = /(<tag>.*?<\/tag>)/

console.log(str.split(regex).filter(Boolean))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章