JavaScript中是否有更快的内置函数来代替两个子字符串之间的substring2,该子字符串2的序列号为substring2的长度,而不是循环整个字符串并用手替换它。
示例:
之前的子字符串:"before"
后面的子字符串:"after"
如果substring2 is length of 3
=>替换为string 011
如果substring2 is length of 6
=>替换为string 999999
字符串:
"beforeoooafter beforeaftebefore123456afteradf"
ooo也将是substring2和123456
ooo => 011(由于长度3)
123456 => 999999(由于长度6)
substring2是前后字符串之间的匹配项
结果:
"before011after beforeaftebefore999999afteradf"
答案 0 :(得分:0)
您可以使用正则表达式和替换函数:
const input = "beforeoooafter beforeaftebefore123456afteradf";
const expectedOutput = "before011after beforeaftebefore999999afteradf";
const output = input.replace(/(before(?:(?!before|after).)*after)/g, function(m) {
const before = 'before';
const after = 'after';
const middle = m.substr(before.length, m.length - after.length - before.length);
if (middle.length === 3) {
return before + '011' + after;
} else if (middle.length === 6) {
return before + '999999' + after;
}
return m;
});
console.log(output);
console.log(output === expectedOutput);