在JavaScript中删除string中的所有非数字字符
考虑一个非DOM场景,你想要使用JavaScript / ECMAScript从string中删除所有非数字字符。 任何在0-9范围内的字符都应该保留。
var myString = 'abc123.8<blah>'; //desired output is 1238
你将如何在普通的JavaScript中实现这一点? 请记住这是一个非DOM场景,所以jQuery和其他涉及浏览器和按键事件的解决scheme是不合适的。
使用正则expression式\D
的string.replace
方法,该types是一个与所有非数字匹配的简写字符类:
myString = myString.replace(/\D/g,'');
如果你需要这个离开浮点数的点,使用这个
var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
如果您的脚本实现支持它们,请使用正则expression式。 就像是:
myString.replace(/[^0-9]/g, '');
您可以使用RegExp replace所有非数字字符:
var myString = 'abc123.8<blah>'; myString = myString.replace(/[^\d]/g, ''); // 1238
有些东西是:
yourString = yourString.replace ( /[^0-9]/g, '' );
我们现在在2017年你也可以使用ES2016
var a = 'abc123.8<blah>'; console.log([...a].filter( e => isFinite(e)).join(''));
要么
console.log([...'abc123.8<blah>'].filter( e => isFinite(e)).join(''));
结果是
1238