首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从字符串中移除连字符的最快方法

从字符串中移除连字符的最快方法
EN

Stack Overflow用户
提问于 2011-06-01 16:55:36
回答 5查看 109.6K关注 0票数 86

我有类似于:185-51-671的I,但是它们也可以在结尾有字母,175-1-7b

我要做的就是删除连字符,作为预处理步骤。给我一些用javascript做这件事的很酷的方法?我想可能会有很多类似的问题,但我想看看人们会为“只连字符”做些什么优化。

谢谢!

编辑:我使用的是jQuery,所以我猜.replace(a,b)做的很好(用b替换a)。

代码语言:javascript
运行
复制
numberNoHyphens = number.replace("-","");

还有其他选择吗?

编辑2:

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

代码语言:javascript
运行
复制
numberNoHyphens = number.replace(/-/g,"");

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

代码语言:javascript
运行
复制
numberNoHyphens = number.replace(/-/,"");

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

EN

回答 5

Stack Overflow用户

发布于 2011-06-01 17:01:47

这不是更快,但是

代码语言:javascript
运行
复制
str.split('-').join('');

也会起作用的。

如果有人想要添加和比较他们的方法,我设置了jsperf测试,但是不太可能有比replace方法更快的方法。

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

票数 13
EN

Stack Overflow用户

发布于 2011-06-01 16:57:51

代码语言:javascript
运行
复制
var str='185-51-671';
str=str.replace(/-/g,'');
票数 8
EN

Stack Overflow用户

发布于 2021-03-18 09:27:09

String.prototype.replaceAll()中变得容易得多。查看浏览器对内建法的支持。

代码语言:javascript
运行
复制
const str = '185-51-671';
console.log(str.replaceAll('-', ''));

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6204867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档