0

小数点以下 2 桁の 6 桁の数字を検証するための JavaScript 正規表現の作成を手伝ってくれる人はいますか? これらの例はテストに合格する必要があります

0,  0.0,  0.33,  1, 11,  111, 1111, 11111,  111111
1.33, 1.3, 12.33, 12.3, 123.0, 123.33, 1234.0, 1234.11

これを試しました:

/^\d{1,4}(\.\d{1,2})?$/ 

しかし、.(ドット)が押されるとjqueryで失敗します

4

3 に答える 3

3

正規表現を試してください: /^\d{1,6}(\.\d{1,2})?$/. 注: エスケープ ドットが必要です。

必要な合計桁数 (小数点以下を含む) が最大 6 桁の場合、正規表現は次のようになります/^(?!.{8,})\d{1,6}(\.\d{1,2})?$/。この式は、長さが 7 より大きい数字を除外する負の先読み を追加します。?!.{8,}

更新: @Christoph が指摘したように、「01.23」は除外する必要があり、上記の 2 つの式はそれぞれ and にする必要が/^([1-9]\d{0,5}|0)(\.\d{1,2})?$/あり/^(?!.{8,})([1-9]\d{0,5}|0)(\.\d{1,2})?$/ます。

于 2013-01-11T08:15:16.613 に答える
1

ドットを押すと、その後にまだ数字がなく、正規表現が失敗します。したがって/^\d{1,6}(\.\d{0,2})?$/、この状況を可能にするためにこの正規表現を試すことができますが、ユーザーはこのような数字を入力できることに注意してください12345.

于 2013-01-11T08:54:26.220 に答える
0

DOT は特殊文字であり、エスケープする必要があります。「\」を使用する必要があります。

最も簡単な方法は、適切な jquery 関数を使用して、文字列の長さが 7 (6 桁と 1 つのドット) 未満であることを最初に確認することです。それは長さを扱います。

次に、正規表現の場合、これで実行できる小数点以下の桁数が最大で 2 であることを確認する必要があります。/^\d{1,6}(\.\d{1,2})?$/

http://www.regular-expressions.info/dot.html

于 2013-01-11T08:15:46.503 に答える