从JavaScript或jQuery中获取文本中的数字

时间:2010-12-08 18:33:35

标签: javascript math

如何在JavaScript或jQuery中获取文本数字?

像PHP中的这个:

<?php
    $a = "2 Apples";
    $b = "3 Peach";
    echo $a + $b // It will print 5! Thanks for this stupid smartness, 2 apples + 3 peaches should be 2 apples and 3 peaches or maybe a nice jam!
?>

现在我想用带/不带jQuery的JavaScript做这样的事情。

var a = "100$";
var b = "120$";
var ttl = 100 - Math.round( a + b );

即使我使用(a + b * 1)(a*1) + (b*1)查看是否将其转换为Int,它也会返回NaN

3 个答案:

答案 0 :(得分:4)

你需要解析它们。 parseInt()会删除尾随非数字字符。

var a = parseInt("100$", 10);
var b = parseInt("120$", 10);

var ttl = 100 - Math.round( a + b );

alert(ttl); // alerts -120

正如@Jeremy所说,这不适用于前导非数字字符。示例:

alert(parseInt("$100", 10)); // alerts "NaN"

答案 1 :(得分:1)

尝试定义如下函数:

function stripToNums(str) {
    return str.replace(/\D/g, '');
}

并在你的字符串上调用它。它应该从字符串中删除任何非数字字符。当然,如果你想处理非整数数值,你需要更加棘手。

以下是现场演示:http://jsfiddle.net/Ender/QEhfR/

请注意,在此示例中,您需要将返回的字符串解析为int,否则脚本将使用返回的两个值进行字符串连接,而不是预期的数学加法。

答案 2 :(得分:0)

使用parseInt()。它返回一个整数值。