考虑一个非 DOM 场景,您希望使用 JavaScript/ECMAScript 从字符串中删除所有非数字字符。0 - 9
应保留范围内的任何字符。
var myString = 'abc123.8<blah>';
//desired output is 1238
你将如何用纯 JavaScript 实现这一点?请记住,这是一个非 DOM 场景,因此 jQuery 和其他涉及浏览器和按键事件的解决方案不适合。
考虑一个非 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, '');
您可以使用 RegExp替换所有非数字字符:
var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238
类似的东西:
yourString = yourString.replace ( /[^0-9]/g, '' );