JS Regex 后视在 Firefox 和 safari 中不起作用

web*_*ard 5 javascript regex firefox regex-lookarounds

我有以下正则表达式,它在 chrome 中工作,但在 firefox 或 safari 中导致错误。我需要修改它以使其工作。有人可以帮助一个可怜的灵魂吗?提前致谢!

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

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

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

操作: input.split(正则表达式)

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

Cod*_*iac 7

firefox 和 safari 尚不支持lookbehind,您可以使用捕获组(使用以便我们拆分的模式也将添加到输出中)并拆分 <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))
Run Code Online (Sandbox Code Playgroud)