0

次の形式に一致する正規表現が必要です。

hhhh:mm or hhhhmm

hhhh は時間です (最初の桁は 1 ~ 9 に一致する必要があり、その後に数字が続きます。4 桁を超えてはなりません)

mm は分です (最初の桁は 0 ~ 5 に一致する必要があり、その後に 2 桁以内の数字が続きます)

次の形式も可能である必要があります - mm または m

これまでのところ、

^([1-9]\d{0,3}:?)?([0-5]\d{0,2})?\d

これは私が望むものと一致しますが、たとえば 4444444 と入力しても失敗しません。

実際、数字が 3 桁未満の場合は、0..59 の範囲で 1 分を処理する必要があります。

どんな助けでも大歓迎です。私は正規表現の達人ではありません。

4

1 に答える 1

1

おそらく次のようなものが必要です。

^(?:([1-9]\d{0,3}):?)?([0-5]?\d)$

これにより、時間の部分が存在する場合でも、1 桁の分が許可されます。解決したくない場合は、いくつかの異なる方法で解決できます。たとえば、次のようになります。

^(?:([1-9]\d{0,3}):?)?([0-5]\d)$|^(\d)$
于 2012-06-04T11:25:29.207 に答える