1. ホーム
  2. regex

正規表現の検証における小数点以下の数値

2023-09-24 17:10:56

質問

正規表現の検証で、小数点以下の値や数値のみをチェックしようと思っています。しかし、ユーザーが数値を入力すると、最初の桁が"0"にならないのです。

どうすればいいでしょうか?

どのように解決するのですか?

1~9の範囲の数字に、0以上の他の数字が続く。

^[1-9]\d*$

小数点以下の数字が続く数字を許可する。1-9の範囲の数字に0以上の他の数字が続き、オプションで小数点が続き、少なくとも1つの数字が続きます。

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

注意事項

  • ^$ のアンカーは、基本的に文字列全体がパターンにマッチしなければならないことを意味します。

  • ()? は、括弧の間の全体の0または1にマッチします。

カンマを扱えるように更新しました。

正規表現において . は特別な意味を持ち、任意の一文字にマッチします。文字通りにマッチさせるには . にマッチさせるには、文字列中の エスケープ . を使って \. の意味ですが、これは \. の意味である。つまり、カンマを代わりに使いたい場合のパターンは単純だ。

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

カンマとフルストップを処理するためのさらなる更新

を許可したい場合 . を許可したい場合、数字と数字のグループの間に , を付けて、積分部と分数部の間に置いてみてください。

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

すなわち、これは1-9の範囲の数字と2桁までの他の数字、そして0個以上のフルストップのグループと3桁、さらにオプションでコンマと数字が続くものです。

を許可したい場合は . を許可したい場合は、次のようにします。

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

すなわち、1〜9の数字に0以上の数字またはフルストップが続き、オプションでコンマと1以上の数字が続きます。