从JavaScript中的字符串中剥离所有非数字字符

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

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

//desired output is 1238

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

梅小卤蛋梅2020/03/11 15:13:39

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

var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
前端Harry十三2020/03/11 15:13:39

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

myString = myString.replace(/\D/g,'');
L西门2020/03/11 15:13:39

类似于以下内容:

yourString = yourString.replace ( /[^0-9]/g, '' );
古一泡芙小卤蛋2020/03/11 15:13:39

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

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