2015-06-21 98 views
0

我想使用正则表达式来验证JSF中的文本字段。有人能告诉我几小时(hh:mm)和日期(dd/mm/yyyy)的模式。我尝试了以下模式,但不知道任何事情。日期和时间的正则表达式模式

<f:validateRegex pattern="[0-9][0-9]:[0-9][0-9]" /> 
<f:validateRegex pattern="[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]" /> 

回答

1

这是相当正确的,但你可以调整的东西,使他们更真实。

[0-2]?[0-9]:[0-5][0-9]”对于时间来说会更现实一些,因为没有32:79,什么也没有。另外,第一个可以是可选的,以使8:00可行。

[0-3]?[0-9]\/[0-1]?[0-9]\/[1-2][0-9][0-9][0-9]日期,因为可能不会有四月四十二号等等。另外,可以将“/”转义为分隔符。

请注意,由于“四月三十九日”可能会导致这种情况仍然不完善,依此类推。您可以制作更长和更难的正则表达式来避免这种情况,但最好使用内置函数或为此制作自己的函数,以评估可变性的每个部分。

例如,二月将会有28天,第30天的日fer不是一个可行的日期,但是正则表达式并不是处理这些情况的最佳工具。

2

以匹配00:00hh:mm23:59你可以使用:

<f:validateRegex pattern="(?:2[0-3]|[01][0-9]):[0-5][0-9]" />