用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。检查链接。