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


68

我的ID如下:185-51-671,但末尾也可以有字母,175-1-7b

我要做的只是删除连字符,作为预处理步骤。告诉我一些很酷的方法来用javascript吗?我认为可能有很多这样的问题,但是我很想知道人们会为“连字符”提出哪些优化

谢谢!

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

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

还有其他选择吗?

编辑#2:

因此,以防万一有人在想,正确的答案是

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

并且您需要模式切换或全局标记“ g”,因为

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

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


1
您不需要用[已解决]注释问题的标题-这是通过为解决您的问题的答案提供“绿色对勾”来暗示的。在StackOverflow上,具有可接受答案的问题与没有可接受答案的问题在视觉上是不同的。
马特

Answers:


145

您需要包括全局标志

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

有没有一种方法可以只在字符串开头修剪连字符,而在字符串中间保留连字符呢?因此,“-这是一个字符串”将变为“这是一个字符串”
abyrne85 18/10/4

@ abyrne85,是的,有一种方法,但是,最好问一个新问题。
詹姆斯·希尔


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

...而且似乎你们两个(你们和CrisDeBlonde)都在同一瞬间回答了这个问题哈哈
11

这只会删除连字符的第一个实例。试试看。
詹姆斯·希尔

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.