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

这将提醒23。

alert(parseInt('23 asdf')); 

但这不会警告23但警告NaN

 alert(parseInt('asdf 23')); 

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

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

 var num = parseInt(str.match(/\d+/),10) 

如果你想解析任何数字(不只是一个正整数,例如“asd -98.43”)使用

 var num = str.match(/-?\d+\.?\d*/) 

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

 var str = "a24b30c90"; 

然后你可以得到一个数组

 var numbers = str.match(/\d+/g).map(Number); 

结果: [24, 30, 90]

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

 var num = [].reduce.call(str,function(r,v){ return v==+v?+v+r*10:r },0); 
 parseInt('asd98'.match(/\d+/)) 
 function toNumeric(string) { return parseInt(string.replace(/\D/g, ""), 10); } 

您必须使用正则表达式来提取数字。

 var mixedTextAndNumber= 'some56number'; var justTheNumber = parseInt(mixedTextAndNumber.match(/\d+/g)); 
 var num = +('asd98'.replace(/[a-zA-Z ]/g, ""));