我就快拿到了,但就是不太对。 我想做的就是从字符串中删除字符r。 问题是,字符串中r的实例不止一个。 但是,它总是索引4的字符(因此是第5个字符)。

示例字符串:crt/r2002_2

我想要什么:crt/2002_2

这个替换函数去掉了r

mystring.replace(/r/g, '')

生产:ct / 2002 _2

我尝试了这个函数:

String.prototype.replaceAt = function (index, char) {
    return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '')

只有当我用另一个字符替换它时,它才会工作。它不会简单地移除它。

任何想法吗?


当前回答

所以基本上,另一种方法是:

使用array .from()方法将字符串转换为数组。 遍历数组并删除除索引为1的字母外的所有r字母。 将数组转换回字符串。

let arr = Array.from("crt/r2002_2"); 加勒比海盗。forEach((信,i) = >{如果(信= = =‘r’& &我! = = 1)arr[我 ] = "" }); document . write (arr.join (" "));

其他回答

总是有字符串函数,如果你知道你总是要删除第四个字符

str.slice(0, 4) + str.slice(5, str.length)

让STR = '1234567'; 令index = 3; STR = STR .substring(0,索引)+ STR .substring(索引+ 1); Console.log (str) // 123567 -索引“3”下的数字“4”被删除

只有当我用另一个字符替换它时,它才会工作。它不会简单地移除它。

这是因为当char等于""时,char。Length是0,所以子字符串组合成原始字符串。按照您的代码尝试,以下将工作:

String.prototype.replaceAt = function (index, char) {
    return this.substr(0, index) + char + this.substr(index + 1);
    //   this will 'replace' the character at index with char ^
}

演示

如果它总是在你的字符串中的第4个字符,你可以尝试:

yourString.replace(/^(.{4})(r)/, function($1, $2) { return $2; });

这个问题有很多应用。调整@simpleigh解决方案,使其更易于复制/粘贴:

function removeAt( str1, idx) {
  return str1.substr(0, idx) + str1.substr(idx+1)
}
console.log(removeAt('abbcdef', 1))  // prints: abcdef