所以,我有一个函数,它有两个参数:字符串和要替换的匹配索引,我只需要替换与该索引匹配的。我该怎么做?
示例:
replace('a_a_a_a_a', 1)
结果:
a__a_a_a
最佳答案
可能看起来像:
var mystr = 'a_a_a_a_a';
function replaceIndex(string, at, repl) {
return string.replace(/\S/g, function(match, i) {
if( i === at ) return repl;
return match;
});
}
replaceIndex(mystr, 2, '_');
上面的代码利用了这样一个事实,即 .replace()
可以将 funarg
(函数参数)作为第二个参数。该回调在匹配的正则表达式模式的当前匹配和该匹配的 index 中传递(以及我们在这里不感兴趣的其他一些)。现在,这就是我们实现您想要的结果所需的全部信息。我们写了一个小函数希望接受三个参数:
- 要修改的字符串
- 我们希望改变的索引
- 该位置的替换字符
关于javascript - 如何仅在字符串中的特定位置替换匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843441/