2009-06-03 6 views
0

最近、一部の国ではカンマ/ピリオドの表記が異なる浮動小数点数が表示されていました。テキスト検証のローカライゼーション

ie。私たちは12,500.34を持っていて、いくつかの国では12.500,34と表示されます

これはディスプレイには問題ありませんが、テキスト入力はどうですか?たとえば、小数点型があり、それをラベルに表示すると、ToString()メソッド(または選択した言語でequiv)がローカライゼーション設定を使用して適切に表示され、さまざまな構文解析 'str > number>メソッドもおそらく動作します。

しかし、テキストの検証はどうですか?私はテキストボックスに5つの数字だけを入力できるようにし、次にオプションの小数点と最大4つの数字を入力できるようにしますか?一般的な解決策は、区切り記号がどのようになるのかわからないときです。明らかに私が使っているハードコーディングされた正規表現のパターンは失敗するでしょう。だから私はちょうどあなたの何人かがこのような場合に何をしたのか不思議です。何かアドバイス彼らが住んでいるか、それらが指定されているしかし、あなたがまたは特定のロケールまたはロケール固有のかもしれない(検証用)の入力を解析していることができるルールをカプセル化する必要があり、これまで

答えて

0

ため

感謝。これにより、ロケールに基づいて実装を切り替えることができます。

これらの方法と場所によっては、フレームワーク内で適用するフレームワーク(JPF does this)を使用することも、フレームワークを使用してフレームワークを拡張することもできます。

+0

ええ、それは私が答えではないと思っていたものですが、それは私の基本的なバックアップ計画でした。私はちょうど誰かがこれのための魔法の弾丸を持っていたと思っていたが、誰もがそう思わない:) – LoveMeSomeCode

0

これは非常に言語に依存します。これをまったく同じように扱う2つの言語はありません。

私はJavaについていくつかアドバイスをすることができます。 Javaでは、これをNumberFormatで処理します。 NumberFormat.parse()が例外をスローせずに動作する場合は、ロケールが使用されているときに有効な数値です。受け入れる小数点以下の桁数を設定することができます。これはすべてJava固有のもので、Javaが使用していると言っていない限り、私はそれに気をつけません。

関連する問題