考虑一个非DOM场景,您希望使用JavaScript / ECMAScript从字符串中删除所有非数字字符 . 应保留0到9范围内的任何字符 .
var myString = 'abc123.8<blah>'; //desired output is 1238
你会如何在纯JavaScript中实现这一目标?请记住这是一个非DOM场景,因此jQuery和其他涉及浏览器和按键事件的解决方案都不合适 .
有点像:
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
使用字符串的.replace方法和 \D 的正则表达式,这是一个匹配所有非数字的速记字符类:
\D
myString = myString.replace(/\D/g,'');
如果你需要这个为浮点数留点,请使用它
var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
如果脚本实现支持,请使用正则表达式 . 就像是:
myString.replace(/[^0-9]/g, '');
您可以使用RegExp来replace所有非数字字符:
var myString = 'abc123.8<blah>'; myString = myString.replace(/[^\d]/g, ''); // 1238
6 回答
有点像:
我们在 2017 现在您也可以使用 ES2016
要么
结果是
使用字符串的.replace方法和
\D
的正则表达式,这是一个匹配所有非数字的速记字符类:如果你需要这个为浮点数留点,请使用它
如果脚本实现支持,请使用正则表达式 . 就像是:
您可以使用RegExp来replace所有非数字字符: