JavaScript Regular Expression用于验证可变长度时间

时间:2012-10-14 18:31:03

标签: javascript regex

这是我要求验证一个长度在1到4个字符之间的字符串(H代表小时,M代表分钟):

1个字符= H(0-9之间的数字)

2个字符= HH(第一个H是0-2之间的数字,第二个是0-9之间的数字,但如果第一个是2,则第二个只能是0-4)

3个字符= HMM(第一个H是0-9之间的数字,第一个M是0-5之间的数字,第二个M是0-9之间的数字)

4个字符= HHMM(第一个H是0-2之间的数字,第二个是0-9之间的数字,但如果第一个是2,则第二个只能是0-4,第一个M是0-5之间的数字,第二个M是0-9之间的数字

这使得具有挑战性的是,我不知道字符串的长度,而且相同的数字可能意味着不同的东西,具体取决于字符串的长度。有关JavaScript RegularExpression的任何想法都可以验证这一点吗?

1 个答案:

答案 0 :(得分:1)

您可以使用这样的正则表达式:

^(2[0-4]|[01]?\d)([0-5]\d)?$

故障:

^                   beginning of string
2[0-4]              digit 2 followed by digit 0-4
|                   or
[01]?\d             digit 0-1, optional, followed by any digit
([0-5]\d)?          digit 0-5 followed by any digit, as whole optional
$                   end of string

注意:也许你的意思是小时0-23而不是0-24:

^(2[0-3]|[01]?\d)([0-5]\d)?$