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

时间:2013-09-10 06:51:39

标签: javascript jquery

这将提醒23。

alert(parseInt('23 asdf'));

但这不会提醒23但警告NaN

alert(parseInt('asdf 23'));

如何从 'asd98' 获取数字?

5 个答案:

答案 0 :(得分:13)

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

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);

答案 1 :(得分:4)

parseInt('asd98'.match(/\d+/))

答案 2 :(得分:1)

function toNumeric(string) {
    return parseInt(string.replace(/\D/g, ""), 10);
}

答案 3 :(得分:1)

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

var mixedTextAndNumber= 'some56number';
var justTheNumber = parseInt(mixedTextAndNumber.match(/\d+/g));

答案 4 :(得分:0)

var num = +('asd98'.replace(/[a-zA-Z ]/g, ""));