2010-12-08 5 views
1

Wie erhalten Sie Ziffern aus Text in JavaScript oder jQuery?Erhalten Sie Stellen außerhalb des Textes in JavaScript oder jQuery

Wie diese in 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! 
?> 

Jetzt möchte ich mit/ohne jQuery so etwas wie dies mit JavaScript tun.

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

Auch wenn ich (a + b * 1) verwendet und auch (a*1) + (b*1) zu sehen, ob es zu Int dreht, kehrte es NaN!

Antwort

4

Sie müssen sie analysieren. parseInt() wird die hinter nichtstelligen Zeichen fallen lassen.

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

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

alert(ttl); // alerts -120 

Wie @ Jeremy sagte, wird dies nicht für führende nicht stelligen Zeichen arbeiten. Beispiel:

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

Es sollte betont werden, dass es nur für nachfolgende Zeichen funktioniert. "$ 100" wird NaN zurückgeben. –

+0

@ Jeremy: Sie sind richtig, aber ich sagte "Trailing" - muss ich das fett? –

+0

Ich klärte nur für jemanden, der liest, der vielleicht nicht in die Antwort einliest, dass der gegenteilige Fall nicht funktionieren wird, die Antwort ist vollkommen richtig. –

1

Versuchen Sie eine Funktion definieren, etwa so:

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

Und rufen, dass auf die Saiten. Es sollte alle Nicht-Ziffern-Zeichen aus der Zeichenfolge entfernen. Natürlich müssen Sie etwas komplizierter sein, wenn Sie nicht-ganzzahlige Zahlenwerte verarbeiten wollen.

Hier ist eine Live-Demo davon: http://jsfiddle.net/Ender/QEhfR/

Beachten Sie, dass Sie benötigen, um die zurückgegebenen Strings als ints in diesem Beispiel zu analysieren, oder das Skript mit den beiden zurückgegebenen Werte String-Verkettung zu tun, anstatt der vorgesehenen mathematische Addition.

0

Verwenden Sie parseInt(). Es gibt einen ganzzahligen Wert zurück.

Verwandte Themen