1

10 進数を検証するための正規表現が必要です。

有効な 10 進数は次のとおりです。

+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34

無効な DECIMAL 番号は次のとおりです。

+1233+
-1233_
+12.233.33

これを手伝ってくれる人はいますか

4

5 に答える 5

2

これの方が良い:

^[+\-]?\d+(,\d{3})*(\.\d*)?$

プラスまたはマイナス、オプションで任意の桁数が続き、オプションで任意の数の,123セクションが続き、オプションで小数点とさらにいくつかの桁が続きます。

^[+\-]?(\d+(,\d{3})*(\.\d*)?|\.\d+)$

その他のオプションを追加すると、先頭に 10 進数があり、その後に数字が続く必要があります。

于 2012-10-03T12:28:17.747 に答える
1

私はこれがあなたが得ることができる最も簡単なものだと思います:

^[+-]?\d*\.?\d+$

小数点以下は常に桁数が必要です。この事実を利用すると、問題が単純化されます。

更新:最初は、コンマも処理する必要があることに気づきませんでした。これは、小数点の左側にコンマを使用できる単純なバージョンです。各コンマの前後には少なくとも1桁の数字が必要ですが、それ以外のルールは適用されません(これがサンプルデータのポイントのようです)。実際には、最後のコンマの後に2桁が必要です。

^[+-]?(\d+(,\d)?)*\.?\d+$

于 2012-10-03T12:50:43.843 に答える
1

これはすべてに有効です:

+123
123
-123
+123.0000
+123,123.999
.0234
+1123,233,34

デモを確認してください:

^[+\-]?(\d+(,?\d)*(\.\d*)?|\.\d+)$

正規表現のデモ

于 2012-10-03T12:23:25.053 に答える
1

正規表現のサポートに依存します。

^([-+])?(\d+)?(\.\d+)?$

オプションの + または -、数値、オプションの ',' の後にさらに数値が続きます。残念ながら、空の文字列にも一致します。

于 2012-10-03T12:36:50.747 に答える
0

これを使用できます

^([-+] ?)?[0-9]+(,[0-9]+)?$
于 2012-10-03T12:36:27.277 に答える