2010-12-08 8 views
1

Comment obtenir des chiffres en JavaScript ou jQuery?Obtenir des chiffres en JavaScript ou en jQuery

Comme celui-ci en 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! 
?> 

Maintenant, je veux faire quelque chose comme ça avec JavaScript avec/sans jQuery.

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

Même si je (a + b * 1) et aussi (a*1) + (b*1) pour voir si elle se tourne vers Int, il est revenu NaN!

Répondre

4

Vous devez les analyser. parseInt() abandonnera en fin de caractères caractères non numériques.

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

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

alert(ttl); // alerts -120 

Comme l'a dit @ Jeremy, cela ne fonctionnera pas pour grands caractères non numériques. Exemple:

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

Il convient de souligner que cela ne fonctionne que sur les caractères de fin. "$ 100" retournera NaN. –

+0

@Jeremy: tu as raison, mais j'ai dit "trailing" - dois-je mettre en gras ça? –

+0

Je ne faisais que clarifier pour quelqu'un qui ne lisait pas la réponse que le cas contraire ne fonctionnerait pas, la réponse est parfaitement correcte. –

1

Essayez de définir une fonction comme ceci:

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

Et appelez ça sur vos cordes. Il doit supprimer tous les caractères non numériques de la chaîne. Bien sûr, vous aurez besoin d'être un peu plus compliqué si vous voulez gérer des valeurs numériques non entières.

Voici une démonstration en direct de cette: http://jsfiddle.net/Ender/QEhfR/

Notez que vous aurez besoin pour analyser les chaînes renvoyées comme ints dans cet exemple, ou le script concaténer de chaîne avec les deux valeurs renvoyées, plutôt que prévu addition mathématique.

0

Utilisez parseInt(). Il renvoie une valeur entière.

Questions connexes