如何确保所选日期时间值介于给定时间范围内。 即
2/2/2011 8:10:30 is invalid but
2/2/2011 8:30:00 is a valid date
答案 0 :(得分:4)
正则表达式匹配字符串,而不是数字或数字范围。因此,您需要考虑所有有效时间/日期的文本表示并进行分析。
5到11之间的数字因此是1[01]|[5-9]
等;这可能会随日期变得复杂,特别是如果您需要验证用户输入。然后你的正则表达式需要知道闰年和所有这些 - 所有这些都是possible but nightmarish来维持。所以你真的需要考虑它是否真的是你想要的正则表达式......
对于你得到的范围8:30:00-13:00:00
(这里写的是一个详细的正则表达式):
\b # start of word
(?: # Either match...
13:00:00 # 13:00:00
| # or
(?: # hours:
1[012] # 10-12
| # or
0?9 # 9, optional leading 0
) # end of hours
: # colon
[0-5][0-9] # minutes: 00-59
: # colon
[0-5][0-9] # seconds
| # or
0?8 # hour: (0)8
: # colon
[3-5][0-9] # minutes 30-59
: # colon
[0-5][0-9] # seconds
) # end of alternation.
\b # end of word
了解为什么这不是一个好主意?