タイトルでまとめてみました。
数字とカンマを一致させる正規表現が必要ですが、0 でない限り、0 で始まる数字は必要ありません。
私のユーザーはフィールドに時間を入力するので、0.3 時間を入力できる必要がありますが、002 または 09 を書き込むことは許可されていません。
私はこの正規表現を持っています
^[0-9]*\,?[0-9]+$
0 の後にコンマが続く場合を除き、0 で開始できないように拡張するにはどうすればよいですか?
タイトルでまとめてみました。
数字とカンマを一致させる正規表現が必要ですが、0 でない限り、0 で始まる数字は必要ありません。
私のユーザーはフィールドに時間を入力するので、0.3 時間を入力できる必要がありますが、002 または 09 を書き込むことは許可されていません。
私はこの正規表現を持っています
^[0-9]*\,?[0-9]+$
0 の後にコンマが続く場合を除き、0 で開始できないように拡張するにはどうすればよいですか?
これを行うために、すべてを単一の正規表現に強制する必要はありません。
複数の正規表現を使用し、それぞれが特定のチェックを行うと、はるかに明確になります。
if ( /^[0-9]+,[0-9]+$/ || /^[1-9][0-9]*$/ )
ここでは、2 つの異なるチェックを行っています。「これが一致するか、他のものが一致するかのどちらか」の場合、両方の条件を 1 つの正規表現に詰め込む必要はありません。
ロジックを正規表現に詰め込もうとするのではなく、ホスト言語の表現形式を使用してください。
これはあなたのニーズに合うはずです:
^0,\d*[1-9]|[1-9]\d*$
0,\d*[1-9]
: 0、その後にカンマ、その後に 0 以上の数字、その後に 1 から 9 までの 1 つの数字[1-9]\d*
: 1 から 9 までの数字の後に 0 個以上の数字が続く一致:
一致しません:
もう一つ:)
^(0|[1-9]\d*(|,\d+)|0,\d+)$