从string中删除连字符的最快方法

我的身份证号码如下: 185-51-671,但最后也可以有字母, 175-1-7b

我想要做的就是删除连字符,作为预处理步骤。 显示一些很酷的方法来做到这一点在JavaScript? 我认为可能有很多像这样的问题,但我很想看看有什么优化的人会用“连字符”

谢谢!

编辑:我使用的是jQuery,所以我猜.replace(a,b)做的伎俩(用b代替)

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

任何其他的select?

编辑#2:

所以,如果有人想知道,正确的答案是

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

而您需要的是模式切换或“全局标志”的“g”

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

只会匹配并replace第一个连字符

您需要包含全局标志 :

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

不是更快,但是

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

也应该工作。

我build立了一个jsperftesting,如果有人想要添加和比较他们的方法,但它不可能比replace方法更快。

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

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

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