这是我要求验证一个长度在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的任何想法都可以验证这一点吗?
答案 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)?$