【问题标题】:Remove first character from a string if it is a comma如果它是逗号,则从字符串中删除第一个字符
【发布时间】:2010-02-02 08:07:29
【问题描述】:

我需要在 javascript 中设置一个函数来删除字符串的第一个字符,但前提是它是逗号 ,。我找到了 substr 函数,但这会删除任何东西,不管它是什么。

我当前的代码是

text.value = newvalue.substr(1);

【问题讨论】:

  • 直接 sting 操作通常比正则表达式更快。我会选择 Max S 的第一个答案。
  • @Jan Aagaard 如果这是要执行多次的操作,我可能也会这样做。但是,我确实发现正则表达式一目了然。

标签: javascript regex string


【解决方案1】:
text.value = newvalue.replace(/^,/, '');

编辑:经过测试且属实。不过,这只是一种方法。

【讨论】:

  • 要测试什么?用空替换打开的锚逗号。你明白了。
  • @Sky 是的,但我喜欢通过 jsbin.com 运行以验证...并消除拼写错误等(丹麦现在仍然是早上。)
  • 这些方法之间的大部分时间性能差异并不重要,但请记住,.replace 与.substr 或.slice 相比非常慢。有关详细信息,请参阅此基准:jsperf.com/replace-first-charachter-of-string-if-it-is-x
  • 我没有解决方案,除非执行 DO WHILE... 但是如果字符串以 2 逗号或 3... 开头怎么办...您将遇到相同的初始问题。它应该删除昏迷,直到字符串不再以昏迷开头。有什么建议吗?
【解决方案2】:
s = (s.length && s[0] == ',') ? s.slice(1) : s;

或者使用正则表达式:

s = s.replace(/^,/, '');

【讨论】:

    【解决方案3】:
    var result = (myString[0] == ',') ? myString.substr(1) : myString;
    

    【讨论】:

      【解决方案4】:

      感谢您的提示,我在这里得到了一个工作代码。 它将复制每个列表项并删除第一个昏迷。

      var list_with_coma = ", " + list_item;
      var unwantedCharacter = ",";
      
      $('#id_of_input').val(function(){
      if (this.value.charAt(0) == unwantedCharacter){
      this.value = this.value.substr(1);}
      return this.value + list_with_coma;
      });
      

      【讨论】:

        猜你喜欢
        • 2012-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-11
        • 2017-01-10
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        相关资源
        最近更新 更多