2009-08-20 8 views
1

私は、ユーザーがカンマのオプションの正しい位置を入力した番号を確認する良い方法を探しています。例えばユーザーが入力した番号のカンマの正しい場所を確認するにはどうすればよいですか?

1,000,000.00 = correct 
1000000  = correct 
1,00,000.00 = incorrect 
,100,000  = incorrect 

私は左に少なくとも一つの番号とコンマの右にある3つの数字がある、または正規表現方法にがあることを確認するためにチェックする必要があるようなので、それが見えますこれを行う?

+0

誰が気にしますか?カンマは、人間の読者がどれほど大きな数字であるかを判読しやすくすることです...政治家はワシントンDCのケアではありません。 – xcramps

答えて

2

これは何のために使用しますか?別の言い方をすると、なぜ気にしますか?カンマをすべて取り除いて数値型に変換するだけではいかがですか?

+0

ええ、それは私の気持ちです...これは銀行ウェブサイトで小数点以下2桁の数字を入力しないように迷惑なチェックをしたようなものです。あなたが国際的なユーザーからのトラフィックを期待している場合は、 "10,00"をチェックするとコンマを取り除く前に便利かもしれないと思います... – Shog9

+0

私は既存の検証で何かを実装するのに約1時間を要し、上記の答えですが、私はあなたのコメントに同意しています。これで私が少し時間を取って実装するつもりです。 – Matt

5
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/ 
2

このウェブサイトをチェックアウト:http://blog.stevenlevithan.com/archives/commafy-numbers

は、ここでは、コードスニペットです:

String.prototype.commafy = function() { 
    return this.replace(/(^|[^\w.])(\d{4,})/g, function($0, $1, $2) { 
     return $1 + $2.replace(/\d(?=(?:\d\d\d)+(?!\d))/g, "$&,"); 
    }); 
} 

Number.prototype.commafy = function() { 
    return String(this).commafy(); 
} 

何ができるかは、すべてのコンマを交換して、カンマで自分自身を追加するには、このコードを使用しています。

希望に役立ちます。

+0

妥当性確認のための道のりはまだまだありますが、もう一度、どうして*どうして*進まずにそれを修正するのでしょうか?フォーマットではなく、コンテンツのみを検証しています。ボックスの外で考えるための+1。 –

0

Here’s a patternあなたの質問にお答えします。誰も心配してはいないような、メンテナンス可能なものも含め、他にも数多くのパターンがあります。

関連する問題