Получить цифры из текста в JavaScript или jQuery - PullRequest
1 голос
/ 08 декабря 2010

Как получить цифры из текста в 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!
?>

Теперь я хочу сделать что-то подобное с JavaScript с / без jQuery.

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

Даже если бы я использовал (a + b * 1), а также (a*1) + (b*1), чтобы посмотреть, превращает ли он его в Int, он вернул NaN !

Ответы [ 3 ]

4 голосов
/ 08 декабря 2010

Вам нужно разобрать их.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 голос
/ 08 декабря 2010

Попробуйте определить функцию следующим образом:

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

И назови это на своих струнах. Он должен удалить любые нецифровые символы из строки. Конечно, вам нужно будет немного хитрее, если вы хотите обрабатывать нецелые числовые значения.

Вот живая демонстрация этого: http://jsfiddle.net/Ender/QEhfR/

Обратите внимание, что в этом примере вам нужно будет проанализировать возвращенные строки как целые, иначе скрипт выполнит конкатенацию строк с двумя возвращенными значениями, а не с математическим добавлением.

0 голосов
/ 08 декабря 2010

Используйте parseInt().Возвращает целочисленное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...