2009-05-10 5 views

答えて

2

正規表現はあなたのためにそれを検証することができます

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

(あまりにもそこでのユーロ記号で)

を私が与えてくれたこの1はそれを行うための最も堅牢な方法ではありません。あなたの好みに変更することができます。代替は、このような何かを試してみることです。

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

それは最初から任意の非数字または.文字を剥ぎ、その後、floatとしてそれを解析します。

7

問題ここでは3つあり:

  1. lot of currency symbolsがあります。
  2. 通貨は同じ記号を使用します(たとえば、$はオーストラリアまたは米ドルを意味します)。
  3. 数字の書記上のロケールの違い(たとえば、英語では3,000.00はドイツ語で3,000.00です)。

数字を取って通貨記号を忘れてしまいます。ただし、通貨を検出することが全体的なポイントである場合は、それを個別に選択するか、上記の通貨リストとロケールの相違の少なくとも一部を実装する必要があります。