-3

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

这里有一些例子。

val1 = '18,000';    
val2 = '18,000 USD';  
val3 = '18,000 PKR';    
val4 = '18000 PKR';

我需要得到 only numbers18000只有。没有其他的。

4

3 回答 3

0

尝试这个:

 var num = Number(val1.replace(/[^0-9.]/g, ""));
于 2013-05-29T17:17:06.760 回答
0

首先,您必须替换字符串中的所有逗号。然后就可以使用 JavaScript 函数了parseInt

var str = "18,000 USD";
str = str.replace(/,/g, "");
var num = parseInt(str, 10);
alert(num);

现在,如果你想要小数位,你可以使用parseFloat.

var str2 = "18,000.50 USD";
str2 = str2.replace(/,/g, "");
var num2 = parseFloat(str2, 10);
alert(num2);

工作示例:http: //jsfiddle.net/arffD/1/

于 2013-05-29T17:18:11.150 回答
0

假设您对代码进行了更正,您应该能够使用此方法将它们转换为实际值

var val1 = "18,000";
var val2 = "18,000 USD";
var val3 = "18,000 PKR";
var val4 = "18000 PKR";

[val1, val2, val3, val4].map(function (n) { 
  return Number(n.replace(/[^\d]+/gi, '')) 
});

那应该给你一个像这样的值数组:

[ 18000,
  18000,
  18000,
  18000 ]

对于 PHP,你可以这样做:

    $val1 = "18,000";
    $val2 = "18,000 USD";
    $val3 = "18,000 PKR";
    $val4 = "18000 PKR";

    function map ($n) {
        $n = preg_replace("%[^\d]+%mi", '', $n);
        return $n;
    }

    $vals = array_map(map, array($val1, $val2, $val3, $val4));

$vals将保留真实值并print_r($vals);应产生:

    Array
    (
        [0] => 18000
        [1] => 18000
        [2] => 18000
        [3] => 18000
    )
于 2013-05-29T17:21:10.807 回答