如何在JavaScript中替换特定索引处的字符?

我有一个字符串,比方说,我需要替换索引3处的char。如何通过指定索引来替换字符?Hello world

var str = "hello world";

我需要类似的东西

str.replaceAt(0,"h");

答案 1

在JavaScript中,字符串是不可变的,这意味着您可以做的最好的方法是创建一个包含更改内容的新字符串,并分配变量以指向它。

您需要自己定义函数:replaceAt()

String.prototype.replaceAt = function(index, replacement) {
    return this.substring(0, index) + replacement + this.substring(index + replacement.length);
}

并像这样使用它:

var hello = "Hello World";
alert(hello.replaceAt(2, "!!")); // He!!o World

答案 2

JavaScript 中没有函数。您可以使用以下代码替换指定位置处的任何字符串中的任何字符:replaceAt

function rep() {
    var str = 'Hello World';
    str = setCharAt(str,4,'a');
    alert(str);
}

function setCharAt(str,index,chr) {
    if(index > str.length-1) return str;
    return str.substring(0,index) + chr + str.substring(index+1);
}
<button onclick="rep();">click</button>