Javascript JS Regex lookbehind在firefox和safari中不起作用
我有下面这个正则表达式,它在chrome中工作,但在firefox或safari中导致错误。我需要修改它使它工作。谁能帮助一个可怜的人?提前谢谢Javascript JS Regex lookbehind在firefox和safari中不起作用,javascript,regex,firefox,regex-lookarounds,Javascript,Regex,Firefox,Regex Lookarounds,我有下面这个正则表达式,它在chrome中工作,但在firefox或safari中导致错误。我需要修改它使它工作。谁能帮助一个可怜的人?提前谢谢 正则表达式:/(?=)(.*)(.*)(firefox和safari还不支持lookbehind,您可以使用capture group(使用它的目的是在输出中添加我们正在拆分的模式)并在 let str=“敏捷的棕色狐狸跳过懒惰的狗” 设正则表达式=/(*)/ console.log(str.split(regex).filter(Boolean))
正则表达式:
/(?=)(.*)(.*)(firefox和safari还不支持lookbehind,您可以使用capture group(使用它的目的是在输出中添加我们正在拆分的模式)并在
let str=“敏捷的棕色狐狸跳过懒惰的狗”
设正则表达式=/(*)/
console.log(str.split(regex).filter(Boolean))
<tag>.*?<\/tag>|[^<>]+
*?|[^]+
这样行吗
试验
函数正则表达式(regex,str){
设m,arr=[];
while((m=regex.exec(str))!==null){
//这是避免具有零宽度匹配的无限循环所必需的
if(m.index==regex.lastIndex){
regex.lastIndex++;
}
m、 forEach((匹配,组索引)=>{
arr.push(匹配修剪());
log(`Found match,group${groupIndex}:${match}`);
});
}
返回arr;
}
常量表达式=/.*?[^]+/g;
const string='敏捷的棕色狐狸跳过懒狗';
log(正则表达式(表达式,字符串))
它可以工作。我很感谢您的回复。我意识到我过度设计了我的初始正则表达式。在这种情况下,Cheers不需要使用g
修饰符,因为这是拆分的默认行为。我尝试了这个方法,它可以工作,但我觉得第一个答案更简单,并且满足了实现要求。感谢提供Visualization ATI在…上