7

是否可以用字符串替换特定位置的字符

假设有一个字符串:"I am a man"

我想用字符串替换 7 处的字符"wom"(不管原始字符是什么)。

最终结果应该是:"I am a woman"

4

3 回答 3

21

字符串在 Javascript 中是不可变的——你不能“就地”修改它们。

您需要将原始字符串剪断,并返回一个由所有片段组成的新字符串:

// replace the 'n'th character of 's' with 't'
function replaceAt(s, n, t) {
    return s.substring(0, n) + t + s.substring(n + 1);
}

注意:我没有添加这个,因为在某些浏览器上,如果你将函数添加到内置类型中,String.prototype性能会非常糟糕。prototype

于 2012-05-28T12:28:30.780 回答
1

或者你可以这样做,使用数组函数。

var a='I am a man'.split('');
a.splice.apply(a,[7,1].concat('wom'.split('')));
console.log(a.join(''));//<-- I am a woman
于 2012-05-28T13:33:56.553 回答
-1

string.replace()Javascript中 有一个方法: https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

PS
顺便说一句,在你的第一个例子中,你所说的“m”的索引是7。Javascript使用从0开始的索引。

于 2012-05-28T12:28:49.290 回答