我可以通过在宏中交替运行“查找下一个”和“替换当前并查找下一个”来执行此操作。但是,我要替换很多正则表达式文本才能做到这一点,因此每执行一次都是很费时间的。如果要一次执行所有操作,可以在javascript中全局执行,但我想做的是替换一个,跳过下一个,替换下一个,等等,直到文档末尾。
我已经尝试过搜索答案,但是所有结果都是关于查找和替换每次出现的事情,我已经知道该怎么做。
答案 0 :(得分:0)
String.prototype.replace()
是您要找的mdn。
let replaceEveryOther = (string, replaced, repalceWith) => {
let alternate;
return string.replace(replaced, a =>
(alternate = !alternate) ? repalceWith : a);
};
let string = 'thee doublee ee\'s neeeed to be fixeed soon!';
let fixed = replaceEveryOther(string, /e/g, '');
console.log(fixed);
或者,如果您想避免具有辅助功能:
let string = 'thee doublee ee\'s neeeed to be fixeed soon!';
let fixed = string.replace(/e/g, (function(a) {
return (this.alternate = !this.alternate) ? '' : a;
}).bind({}));
console.log(fixed);