2009-05-10 6 views

Antwort

2

kann ein regulärer Ausdruck, dass für Sie bestätigen:

/[\$£¥]\d+(\.\d\d)?/ 

(aber mit dem Euro-Zeichen auch dort in)

dieses Ich werde nicht die robusteste Weg gegeben haben, es zu tun . Sie können Ihre Präferenz ändern. Eine Alternative ist, so etwas versuchen:

var myString = "$55.32", 
    currency = parseFloat(myString.replace(/^[^\d\.]*/, '')) 
    valid = !isNaN(currency) 
; 

Es Streifen von Anfang an alle Nicht-Nummer oder . Zeichen entfernt und dann analysiert es als Schwimmer.

7

Das Problem hier ist dreifach:

  1. Es gibt eine lot of currency symbols;
  2. Währungen haben das gleiche Symbol (bedeutet z. B. "Australisch" oder "US-Dollar"); und
  3. Gebietsunterschied in Schreibzahlen (zB 3.000,00 in Englisch ist 3'000,00 in Deutsch).

Mein Rat? Nimm einfach Zahlen und vergiss das Währungssymbol. Wenn jedoch die Erkennung der Währung der springende Punkt ist, dann wählen Sie entweder separat, oder Sie müssen mindestens eine Teilmenge der obigen Liste von Währungen plus die Gebietsschemaldifferenzen implementieren.

Verwandte Themen