数値を検証する正規表現が必要ですが、小数点以下の桁は必要ありません。すなわち。
123
123.
123.4
すべて有効になります
123..
無効になります
どなたでも大歓迎です!
数値を検証する正規表現が必要ですが、小数点以下の桁は必要ありません。すなわち。
123
123.
123.4
すべて有効になります
123..
無効になります
どなたでも大歓迎です!
以下を使用してください。
/^\d*\.?\d*$/
^
-行の始まり。\d*
-0桁以上。\.?
-オプションのドット(正規表現で.
は特殊文字であるため、エスケープされています)。\d*
-0桁以上(小数部)。$
-行の終わり。これにより、0.5などの先行ゼロを必要とせずに、小数点以下0.5桁が可能になります。
/\d+\.?\d*/
1桁以上(\d+
)、オプションのピリオド(\.?
)、0桁以上(\d*
)。
使用法または正規表現エンジンによっては、開始/終了行アンカーを追加する必要がある場合があります。
/^\d+\.?\d*$/
これはすべての要件に一致します。
^\d+(\.\d+)?$
この正規表現を試してください:
\d+\.?\d*
オプションの小数点の前の\d+桁
。?オプションの小数(?数量詞のためにオプション)
\d*小数の後のオプションの数字
私は最終的に以下を使用しました:
^\d*\.?\d+$
これにより、以下が無効になります。
.
3.
何語?Perl スタイル:^\d+(\.\d*)?$
Perl では、Regexp::Common を使用して、特定の数値形式用に微調整された正規表現を組み立てることができます。Perl を使用していない場合でも、通常、生成された正規表現を他の言語で使用できます。
正規表現の例を生成した結果を Regexp::Common::Number で出力します。
$ perl -MRegexp::Common=number -E 'say $RE{num}{int}'
(?:(?:[-+]?)(?:[0123456789]+))
$ perl -MRegexp::Common=number -E 'say $RE{num}{real}'
(?:(?i)(?:[-+]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[-+]?)(?:[0123456789]+))|))
$ perl -MRegexp::Common=number -E 'say $RE{num}{real}{-base=>16}'
(?:(?i)(?:[-+]?)(?:(?=[.]?[0123456789ABCDEF])(?:[0123456789ABCDEF]*)(?:(?:[.])(?:[0123456789ABCDEF]{0,}))?)(?:(?:[G])(?:(?:[-+]?)(?:[0123456789ABCDEF]+))|))