1

文字列のどこかに数値および/または「h」または「H」文字が含まれている場合にのみ、文字列を検証したい。

例えば

123 - 有効
123h - 有効
1h23 - 有効
h234 - 有効
123H - 有効
asdf -無効
123d -無効

文字列を数値のみに制限することはできますが、h を追加する必要はありません。これどうやってするの?

4

5 に答える 5

5
^\d*h?\d*$

大文字と小文字を区別しないオプションと一緒に。

ここRegexrでそれを参照してください

^文字列の先頭にアンカーします。

\d*0桁以上に一致する

h?0または1時間に一致

\d*0桁以上に一致する

$文字列の最後にアンカーします。

于 2012-07-03T05:55:22.730 に答える
3

[0-9h]*0 ~ 9 または h の任意の数字に一致します。1つだけを許可するには、「h」を使用できます[0-9]*h?[0-9]*(すでに大文字と小文字を区別していないと思います)。のように h を囲む桁数を制限することもできます[0-9]{1,2}h?[0-9]{1,2}

0 ~ 59 を分として、または「h」で区切られた時間と分の形式で入力できるようにしたいとします。

[0-9]{1,2}h[0-5]?[0-9]|[0-5]?[0-9]
于 2012-07-03T05:49:57.343 に答える
1

これはあなたのために働くはずです/[\dh]*/i

あなたの例はここでテストされています。

于 2012-07-03T05:54:06.897 に答える
0

これを使って:

[^h]*h?[^h]*

これはうまくいくはずです。

于 2012-07-03T06:05:24.297 に答える
0

これは有効な正規表現です:

^\d*h?H?\d*$

ここを見てください:正規表現の例

于 2012-07-03T05:52:19.797 に答える