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

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

//desired output is 1238

如何在纯JavaScript中实现这一点?请记住,这是一个非dom场景,因此jQuery和其他涉及浏览器和按键事件的解决方案并不适用。


当前回答

try

myString.match(/\d/g).join``

var myString =“abc123.8”等等 游戏机/ log (myString . match (d / g)。join ();

其他回答

您可以使用RegExp替换所有非数字字符:

var myString = 'abc123.8<blah>';
myString = myString.replace(/[^\d]/g, ''); // 1238

大致如下:

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

不幸的是,上面的答案都不适合我。

我想转换货币数字从字符串如$123,232,122.11(1232332122.11)或美元123,122.892(123122.892)或任何货币如98,79,112.50(9879112.5)给我一个数字输出,包括十进制指针。

我必须创建自己的正则表达式,看起来像这样:

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

如果脚本实现支持正则表达式,请使用正则表达式。喜欢的东西:

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

这一点,

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

处理两者和。也,

例子:

“平衡- 100美元,00.50”.match (\ d。| | \ \ / / g) . join ();

输出

10000.50