我的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(/-/,"");
只匹配并替换第一个连字符
答案 0 :(得分:116)
您需要加入the global flag:
var str="185-51-671";
var newStr = str.replace(/-/g, "");
答案 1 :(得分:8)
这不更快,但
str.split('-').join('');
也应该有用。
如果有人想要添加和比较他们的方法,我会设置一个jsperf测试,但是任何东西都不会比replace
方法更快。
答案 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("-","")