如何在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!
答案 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()
。它返回一个整数值。