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 范围内处理一分钟。

任何帮助表示赞赏。我根本不是正则表达式大师。

4

1 回答 1

1

你可能想要这样的东西:

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

即使存在小时部分,这也将允许一位数的分钟。如果您不希望它可以通过一些不同的方式解决,例如:

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