用JavaScript中的范围替换字符串中的子字符串

用JavaScript中的范围替换字符串中的子字符串,javascript,string,replace,Javascript,String,Replace,给定起始位置和长度,如何替换字符串的子字符串 我希望有这样的事情: var string=“这是一个测试字符串”; 字符串。替换(10,4,“替换”); 所以字符串将等于 “这是一个替换字符串” …但我找不到这样的东西 感谢您的帮助。像这样: var outstr = instr.substr(0,start)+"replacement"+instr.substr(start+length); 您可以将其添加到字符串的原型中: String.prototype.splice = funct

给定起始位置和长度,如何替换字符串的子字符串

我希望有这样的事情:

var string=“这是一个测试字符串”;
字符串。替换(10,4,“替换”);
所以
字符串
将等于

“这是一个替换字符串”
…但我找不到这样的东西

感谢您的帮助。

像这样:

var outstr = instr.substr(0,start)+"replacement"+instr.substr(start+length);
您可以将其添加到字符串的原型中:

String.prototype.splice = function(start,length,replacement) {
    return this.substr(0,start)+replacement+this.substr(start+length);
}
(我称之为
splice
,因为它非常类似于同名的数组函数)

Short RegExp版本:

str.replace(new RegExp("^(.{" + start + "}).{" + length + "}"), "$1" + word);
例如:

String.prototype.sreplace = function(start, length, word) {
    return this.replace(
        new RegExp("^(.{" + start + "}).{" + length + "}"),
        "$1" + word);
};

"This is a test string".sreplace(10, 4, "replacement");
// "This is a replacement string"
演示:

有一种拼接方法,其工作原理与您指定的完全相同

_("This is a test string").splice(10, 4, 'replacement');
=> "This is a replacement string"

库中还有许多其他有用的函数。它的时钟为8kb,并在上可用。

无论如何,此函数将基于两个索引而不是第一个索引和长度进行替换

splice: function(specimen, start, end, replacement) {
    // string to modify, start index, end index, and what to replace that selection with

    var head = specimen.substring(0,start);
    var body = specimen.substring(start, end + 1); // +1 to include last character
    var tail = specimen.substring(end + 1, specimen.length);

    var result = head + replacement + tail;

    return result;
}

我个人就是这样做的。♥ 正则表达式。@cr0nicz我指的是下划线.string。检查链接。