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

新手上路,请多包涵

我很接近得到这个,但它是不正确的。

我想做的就是从字符串中删除字符 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, '')

只有当我用另一个字符替换它时它才有效。它不会简单地删除它。

有什么想法吗?

原文由 user1293504 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 672
1 个回答
var mystring = "crt/r2002_2";
mystring = mystring.replace('/r','/');

将使用 --- 将 /r 替换为 / String.prototype.replace

或者,您可以使用带有全局标志的正则表达式(如下面的 Erik Reppen & Sagar Gala 所建议的那样)将所有出现的地方替换为

mystring = mystring.replace(/\/r/g, '/');

编辑: 因为每个人都在这里玩得很开心,而且 user1293504 似乎不会很快回来回答澄清问题,这里有一个从字符串中删除第 N 个字符的方法:

 String.prototype.removeCharAt = function (i) {
    var tmp = this.split(''); // convert to an array
    tmp.splice(i - 1 , 1); // remove 1 element from the array (adjusting for non-zero-indexed counts)
    return tmp.join(''); // reconstruct the string
}

console.log("crt/r2002_2".removeCharAt(4));

由于 user1293504 使用正常计数而不是零索引计数,我们必须从索引中删除 1,如果您希望使用它来复制如何 charAt 工作不要从索引中减去 1第三行并使用 tmp.splice(i, 1) 代替。

原文由 JKirchartz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题