如何从字符串中获取数值?

Nav*_*yar 8 javascript jquery

这将提醒23.

alert(parseInt('23 asdf'));
Run Code Online (Sandbox Code Playgroud)

但这不会警告23但警告NaN

alert(parseInt('asdf 23'));
Run Code Online (Sandbox Code Playgroud)

我如何从中获得数字'asd98'

Den*_*ret 15

您可以使用正则表达式来获取第一个整数:

var num = parseInt(str.match(/\d+/),10)
Run Code Online (Sandbox Code Playgroud)

如果要解析任何数字(不只是一个正整数,例如"asd -98.43"),请使用

var num = str.match(/-?\d+\.?\d*/)
Run Code Online (Sandbox Code Playgroud)

现在假设你的字符串中有多个整数:

var str = "a24b30c90";
Run Code Online (Sandbox Code Playgroud)

然后你可以得到一个数组

var numbers = str.match(/\d+/g).map(Number);
Run Code Online (Sandbox Code Playgroud)

结果: [24, 30, 90]

为了好玩和Shadow Wizard,这里是一个没有正则表达式的解决方案,只包含一个整数的字符串(它可以扩展为多个整数):

var num = [].reduce.call(str,function(r,v){ return v==+v?+v+r*10:r },0);
Run Code Online (Sandbox Code Playgroud)

  • 最后一个代码块是美丽的,但它*因某种原因*吓坏了我......(不,我不知道为什么.) (2认同)