我就快拿到了,但就是不太对。 我想做的就是从字符串中删除字符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, '')

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

任何想法吗?


当前回答

在c# (Sharp)中,你可以创建一个空字符'\0'。 也许你可以这样做:

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

在谷歌上搜索或在互联网上冲浪,检查javascript是否允许您制作空字符,就像c#一样。如果是,那么学习如何做到这一点,也许replacat函数最终会工作,并且您将实现您想要的!

最后,'r'字符将被删除!

其他回答

使用[index]位置来删除特定的字符

String.prototype.remplaceAt = function (index, distance) {
  return this.slice(0, index) + this.slice(index + distance, this.length);
};

来源:https://stackoverflow.com/users/62576/ken-white

创建如下所示的函数

  String.prototype.replaceAt = function (index, char) {
      if(char=='') {
          return this.slice(0,index)+this.substr(index+1 + char.length);
      } else {
          return this.substr(0, index) + char + this.substr(index + char.length);
      }
  }

替换如下所示的字符

  var a="12346";
  a.replaceAt(4,'5');

为了删除指定下标处的字符,给出第二个参数为空字符串

a.replaceAt(4,'');

也许我是个新手,但我今天遇到了这些,它们看起来都不必要地复杂。

这里有一个更简单的方法(对我来说)从字符串中删除任何你想要的东西。

function removeForbiddenCharacters(input) {
let forbiddenChars = ['/', '?', '&','=','.','"']

for (let char of forbiddenChars){
    input = input.split(char).join('');
}
return input

}

这是对简单答案的改进(省略长度)

s.slice(0, 4) + s.slice(5)

Let s = "crt/r2002_2"; 设o = s.slice(0,4) + s.slice(5); let delAtIdx = (s, i) => s.slice(0, i) + s.slice(i + 1);//删除索引I处的字母 console.log (o); console.log (delAtIdx (s, 4));

return this.substr(0, index) + char + this.substr(index + char.length);

char。长度为零。在这种情况下,您需要添加1以跳过字符。