JavaScript中从字符串中剔除所有非数字字符。

980

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

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

//desired output is 1238

你要如何在普通的JavaScript中实现这个功能?请记住这是一个非DOM场景,所以jQuery和其他涉及浏览器和按键事件的解决方案都不适用。

12个回答

1

这个,

.match(/\d|\.|\-/g).join('');

处理,.以及-

示例:

"Balance -$100,00.50".match(/\d|\.|\-/g).join('');

输出

-10000.50


-5

现在是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

14
这种方式进行操作非常低效。 - djheru
6
该程序通过一种轻便的方法将字符串转换为单个字符字符串数组,然后在每个数组项上应用 JavaScript 过滤函数,返回一个新的字符串数组,最后将该数组连接成一个字符串。正则表达式获取字符串并返回一个字符串,处理过程是由本地代码完成的。 - ShortFuse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接