【问题标题】:Remove a character at a certain position in a string - javascript [duplicate]删除字符串中某个位置的字符 - javascript [重复]
【发布时间】:2012-06-22 09:49:23
【问题描述】:

有没有一种简单的方法可以删除javascript中某个位置的字符?

例如如果我有字符串"Hello World",我可以删除位置3的字符吗?

我要寻找的结果如下:

"Helo World"

这个问题不是How can I remove a character from a string using JavaScript?的重复问题,因为这个问题是关于删除特定位置的字符,而这个问题是关于删除一个字符的所有实例。

【问题讨论】:

  • 在发布此问题之前,您是否甚至寻找过答案?如果您使用“Javascript 字符串删除字符”查看“Javascript 字符串删除字符”,您会从这里遇到至少 4 个其他问题,更不用说实际解决方案大约一百万次了。
  • 我做到了,但我不能看起来很努力
  • 这不是重复的。这个问题是关于从某个位置删除一个已知字符。重复是关于从任意位置删除已知字符。
  • @MT0 不。这个问题是关于删除特定索引处的字符 - 这个问题是关于从字符串中删除特定字符的实例。
  • @starbeamrainbowlabs 不,它是完全重复的;链接的问题是关于删除第四个字符(恰好也总是r)。 accepted answer here 与该问题上的 2nd highest voted answer 相同。

标签: javascript string


【解决方案1】:

这取决于您如何轻松找到以下内容,它使用简单的字符串方法(在本例中为slice())。

var str = "Hello World";
str = str.slice(0, 3) + str.slice(4);
console.log(str)

【讨论】:

  • 谢谢!我知道会有一个简单的解决方案。我没想到:-)
  • @Zon:没错,就是这样。当与+ str.slice(4); 结合使用时,您最终会删除字符串str 中的第三个字符(索引为零)。 str.slice(0, 3) + str.slice(4) // Helo World
  • 只是把我的美元:str.slice(0, 3) 给出'Hel'(从第一个到第三个符号); str.slice(4) 给出 'o World' (取第 4 个符号之后的所有内容);你也可以像这样设置切割边界:str.slice(0, -6) 来得到'Hello'。
  • 函数 removeByIndex(aStr,index){ if(index==aStr.length-1){ return aStr.slice(0,aStr.length-1); } else{ 返回 aStr.slice(0,index)+aStr.slice(index+1); } } 函数 myFunction() { var str = "abc"; var res =removeByIndex(str,2);控制台.log(res); }
【解决方案2】:

你可以这样试试!!

var str ="Hello World";
var position = 6;//its 1 based
var newStr = str.substring(0,position - 1) + str.substring(postion, str.length);
alert(newStr);

这是一个实时示例:http://jsbin.com/ogagaq

【讨论】:

  • 如果位置变量的值为0怎么办?第一个字符没有被删除。
  • @GeorgeSiggouroglou 感谢您指出,实际上位置变量是基于 1 的(我评论为 0)。刚刚修复了评论。
【解决方案3】:

将字符串转为数组,在指定索引处截取一个字符并转回字符串

let str = 'Hello World'.split('')

str.splice(3, 1)
str = str.join('')

// str = 'Helo World'.

【讨论】:

  • 你甚至可以使用 do [...'Hello world!'].splice(3, 1).join('')
  • @AminNAIRI 恐怕行不通。
【解决方案4】:

如果省略特定的索引字符,则使用此方法

function removeByIndex(str,index) {
      return str.slice(0,index) + str.slice(index+1);
}
    
var str = "Hello world", index=3;
console.log(removeByIndex(str,index));

// Output: "Helo world"

【讨论】:

  • 如果 index=0 会怎样?
  • @Ali 我遇到了问题,感谢您通知我。我更新代码。
  • 我相信这对于 index = 1 也会失败,而是删除索引 0
  • @Erick miseck 更正感谢您的指出。
【解决方案5】:
    var str = 'Hello World';
                str = setCharAt(str, 3, '');
                alert(str);

function setCharAt(str, index, chr)
        {
            if (index > str.length - 1) return str;
            return str.substr(0, index) + chr + str.substr(index + 1);
        }

【讨论】:

    【解决方案6】:

    您可以使用substring() 方法。例如,

    var x = "Hello world"
    var x = x.substring(0, i) + 'h' + x.substring(i+1);
    

    【讨论】:

      【解决方案7】:

      嗨,starbeamrainbowlabs,

      您可以通过以下方式做到这一点:

      var oldValue = "pic quality, hello" ;
      var newValue =  "hello";
      var oldValueLength = oldValue.length ;
      var newValueLength = newValue.length ;
      var from = oldValue.search(newValue) ;
      var to = from + newValueLength ;
      var nes = oldValue.substr(0,from) + oldValue.substr(to,oldValueLength);
      console.log(nes);
      

      我在我的 javascript 控制台中对此进行了测试,因此您也可以检查一下 谢谢

      【讨论】:

        【解决方案8】:
        var str = 'Hello World',
            i = 3,
            result = str.substr(0, i-1)+str.substring(i);
        
        alert(result);
        

        i 的值不应小于 1

        【讨论】:

        • i 是什么?为什么不应该小于 1 而不是 0?
        猜你喜欢
        • 2016-03-05
        • 2021-01-23
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 1970-01-01
        • 2019-09-02
        • 2012-05-02
        • 1970-01-01
        相关资源
        最近更新 更多