2013-05-29 5 views
-3

Как я могу получить числовое значение из строки?Как извлечь числовое значение из строки с помощью php

Вот несколько примеров.

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

Мне нужно только лишь numbers, 18000. Ничего больше.

+1

Вы искали по использованию регулярных выражений? – tymeJV

+1

Это уже задано на этом сайте. Пожалуйста, взгляните на эту ссылку: http://stackoverflow.com/questions/10003683/javascript-get-number-from-string – krishgopinath

+1

и это: http://stackoverflow.com/questions/3955345/javascript-jquery-get -number-from-string – krishgopinath

ответ

0

попробовать это:

var num = Number(val1.replace(/[^0-9.]/g, "")); 
+0

Упрощение: ''/\ D/"' –

+0

Вы правы :) –

+1

Это не будет работать для десятичных знаков, например. $ 18,000.10 – ktm5124

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/

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 
    ) 
Смежные вопросы