【问题标题】:how to remove "," from a string in javascript如何从javascript中的字符串中删除“,”
【发布时间】:2021-11-06 20:54:34
【问题描述】:

原始字符串是"a,d,k" 我想删除所有, 并使其成为"adk"

我尝试了下面的代码,但它不起作用。

"a,d,k".replace(/,/,"")

【问题讨论】:

  • “不起作用”?请详细说明。什么“不起作用”?
  • 我搜索了相同的问题。感谢您节省了我的时间

标签: javascript string


【解决方案1】:

您没有将替换方法的结果分配回您的变量。当您调用 replace 时,它​​会返回一个新字符串而不修改旧字符串。

例如,将其加载到您喜欢的浏览器中:

<html><head></head><body>
    <script type="text/javascript">
        var str1 = "a,d,k";
        str1.replace(/\,/g,"");
        var str2 = str1.replace(/\,/g,"");
        alert (str1);
        alert (str2);
    </script>
</body></html>

在这种情况下,str1 仍将是 "a,d,k"str2 将是 "adk"

如果你想改变str1,你应该这样做:

var str1 = "a,d,k";
str1 = str1.replace (/,/g, "");

【讨论】:

  • +1,但你可以做 var str2; str2 = str.replace(...)。我已经扩展了(希望)改进它的答案。
  • 如果你想在没有正则表达式的情况下这样做str.split(",").join("")
  • @Lime Big thanx 非常有帮助! +1
【解决方案2】:

使用String.replace(),例如

var str = "a,d,k";
str = str.replace( /,/g, "" );

注意正则表达式上的g(全局)标志,它匹配“,”的所有实例。

【讨论】:

    【解决方案3】:

    如果你想删除多个字符,说逗号和点你可以写

    <script type="text/javascript">
      var mystring = "It,is,a,test.string,of.mine" 
      mystring = mystring.replace(/[,.]/g , ''); 
      alert( mystring);
    </script>
    

    【讨论】:

    • 完美,感谢 +1。
    【解决方案4】:

    你可以试试这样的:

    var str = "a,d,k";
    str.replace(/,/g, "");
    

    【讨论】:

      【解决方案5】:

      &lt;script type="text/javascript"&gt;var s = '/Controller/Action#11112';if(typeof s == 'string' &amp;&amp; /\?*/.test(s)){s = s.replace(/\#.*/gi,'');}document.write(s);&lt;/script&gt;

      这是更常见的答案。并且可以和s= document.location.href;一起使用

      【讨论】:

        【解决方案6】:

        如果您需要大于 999,999.00 的数字,您将遇到问题。
        这些仅适用于小于 100 万、1,000,000 的数字。
        他们只删除 1 或 2 个逗号。

        这里可以删除最多 12 个逗号的脚本:

        function uncomma(x) {
          var string1 = x;
          for (y = 0; y < 12; y++) {
            string1 = string1.replace(/\,/g, '');
          }
          return string1;
        }
        

        如果您需要更大的数字,请修改该 for 循环。

        【讨论】:

        • 您的正则表达式中的g 表示全局,并且将在第一次传递时从字符串中删除所有逗号,其他11 个循环什么也不做。此外,您不需要转义文字中的逗号字符。我建议不要对其他人的回答如此敌视和批评。
        • 奇怪的是它对我有用 11 循环,而不是 1 遍。
        • 我也没有“敌对”或“批评”。只是通知上面的例子有缺陷,不适用于超过 100 万的数字。我需要代码,测试它,它失败了,我已经发布了我的解决方案,它只适用于 11 个循环,不适用于 1。你能告诉我为什么会这样吗?这与你所说的背道而驰。所以我不确定。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多