如何使用JavaScript从字符串中删除一个字符?

519

我离解决这个问题很近了,但还不完美。 我想做的仅是从一个字符串中移除字符r。 问题在于,字符串中有多个r实例。 然而,它总是位于索引4处(即第5个字符)。

示例字符串: crt/r2002_2

我想要的结果: crt/2002_2

下面这个replace函数会移除所有的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, '')

如果我将其替换为另一个字符,它才会起作用。 它不会简单地将其删除。

有什么想法吗?


这里有什么问题,"r"都被删除了,不是吗? - Vladimir Despotovic
不,第一个不是。 - Capt 171
22个回答

0

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

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

let arr = Array.from("crt/r2002_2");

arr.forEach((letter, i) => { if(letter === 'r' && i !== 1) arr[i] = "" });

document.write(arr.join(""));


-2
在C#中,你可以用'\0'来表示一个空字符。 也许你可以这样做:
String.prototype.replaceAt = function (index, char) {
return this.substr(0, index) + char + this.substr(index + char.length);
}
mystring.replaceAt(4, '\0')

在谷歌上搜索或浏览互联网,查看JavaScript是否允许您创建空字符,就像C#一样。如果是的话,那么学习如何做到这一点,也许replaceAt函数最终会起作用,您将实现自己想要的目标!

最后那个'r'字符将被删除!


OP 需要 JavaScript 解决方案,而不是可能在 JS 中无法正常工作的其他语言的想法。 - Guilherme Taffarel Bergamin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接