协慌网

登录 贡献 社区

从 JavaScript 中的字符串中去除所有非数字字符

考虑一个非 DOM 场景,您想使用 JavaScript / ECMAScript 从字符串中删除所有非数字字符。 0 - 9范围内的任何字符都应保留。

var myString = 'abc123.8<blah>';

//desired output is 1238

您将如何用普通的 JavaScript 实现这一目标?请记住,这是一个非 DOM 场景,因此 jQuery 和其他涉及浏览器和按键事件的解决方案都不适合。

答案

将字符串的.replace方法与正则表达式\D ,这是一个速记字符类,可匹配所有非数字:

myString = myString.replace(/\D/g,'');

如果您需要用它来保留浮点数,请使用此

var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"

如果您的脚本实现支持正则表达式,请使用正则表达式。就像是:

myString.replace(/[^0-9]/g, '');