据我所知,我发现一个有趣的问题在这里没有得到解答。我有一个正则表达式对象,用于在字符串中进行替换。问题是如果我想停止进一步的替换,因为我找到了一个特定的字符串,我不能这样做。“break”语句显然不起作用,因为这既不是循环也不是 switch-case。
如果我使用“return”,替换将继续。我可以在函数的头部使用“不完整”变量(见下面的例子)来防止进一步的替换,但检查会继续进行,它将被评估与正则表达式匹配的次数一样多,这不是必需的。
有没有办法完全停止这个函数的替换?
谢谢。
例子:
var regex = new RegExp("whatever", "g");
str = str.replace(regex, function(tot, group1) {
if (group1 == "i_wanna_stop_str") {
incomplete = true;
break; <-- not working
} else {
... compute replacement ...
return replacement;
}
}