从字符串中删除连字符的最快方法[js]

时间:2011-06-01 16:55:37

标签: javascript

我的ID看起来像是: 185-51-671 ,但最后也可以有字母, 175-1-7b

我想要做的就是删除连字符,作为预处理步骤。在javascript中向我展示一些很酷的方法吗?我认为可能有很多像这样的问题,但我很想知道人们会为“只是连字符”提出什么样的优化

谢谢!

编辑:我正在使用jQuery,所以我猜.replace(a,b)可以解决问题(用b代替)

numberNoHyphens = number.replace("-","");

还有其他选择吗?

编辑#2:

所以,万一有人想知道,正确答案是

numberNoHyphens = number.replace(/-/g,"");

你需要“g”这是模式开关或“全局标志”,因为

numberNoHyphens = number.replace(/-/,"");

只匹配并替换第一个连字符

5 个答案:

答案 0 :(得分:116)

您需要加入the global flag

var str="185-51-671";
var newStr = str.replace(/-/g, "");

答案 1 :(得分:8)

更快,但

str.split('-').join('');

也应该有用。

如果有人想要添加和比较他们的方法,我会设置一个jsperf测试,但是任何东西都不会比replace方法更快。

http://jsperf.com/remove-hyphens-from-string

答案 2 :(得分:3)

var str='185-51-671';
str=str.replace(/-/g,'');

答案 3 :(得分:2)

String.prototype.replaceAll() 中变得更容易。查看浏览器对 built-in method 的支持。

const str = '185-51-671';
console.log(str.replaceAll('-', ''));

答案 4 :(得分:-3)

在编辑之前,这些答案的索引并未删除所有连字符。您需要使用.replaceAll("-","")