如何从JavaScript中的字符串中删除“,”


71

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

我在下面尝试了代码,但是没有用。

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

1
“不行”吗?请详细说明。关于它什么“不起作用”?
罗布

2
我搜索了同样的问题。为节省我的时间而致谢
克里希纳,

Answers:


121

您没有将replace方法的结果分配回您的变量。调用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, "");

3
+1,但您可以执行var str2; str2 = str.replace(...)。我已经扩展了(希望)改善它的答案。
paxdiablo

36
如果你想这样做没有一个正则表达式str.split(",").join("")
石灰

@Lime Big thanx非常有用!+1
Ishikawa Yoshi 2012年

40

使用String.replace(),例如

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

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


5

如果U要删除多个字符,请说逗号和点,您可以写

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

完美,感谢+1。
Ajoy Karmakar


-2

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

这是更常见的答案。可以和s= document.location.href;


-3

如果您需要大于999,999.00的数字,则会遇到问题。
这些仅适用于少于100万和100万的数字。
它们仅删除1或2个逗号。

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

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

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


2
g您的正则表达式意味着全球和将在字符串中删除所有的逗号先通过其他11个循环无能为力。另外,您无需在文字中转义逗号字符。我建议不要对别人的回答如此敌对和批评。
JaredMcAteer

奇怪的是,它对我来说有11个循环,而不是1个遍。
亚历克斯(Alex)

我也不是在“敌对”或“批评”。仅通知上面的示例有缺陷,不适用于大于100万的数字。我需要代码,对其进行了测试,但失败了,并且我发布了仅适用于11个循环而不适用于1的解决方案。您能告诉我为什么吗?这违背了你的意思。所以我不确定。
亚历克斯(Alex)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.