我想使用正则表达式来验证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]" />
答案 0 :(得分:2)
要匹配hh:mm
到00:00
的{{1}},您可以使用:
23:59
答案 1 :(得分:1)
这是相当正确的,但你可以调整一些东西以使它们更加真实。
&#34; [0-2]?[0-9]:[0-5][0-9]
&#34;因为没有32:79
而没有8:00
,所以时间会更加真实。此外,第一个可以选择使[0-3]?[0-9]\/[0-1]?[0-9]\/[1-2][0-9][0-9][0-9]
可行。
\0
约会,因为4月42日不可能,依此类推。另外,转义&#34; /&#34;,可以将其视为分隔符。
请注意,这仍然是不完美的,因为&#34; 39四月&#34;可持续等等。你可以制作更长,更难的regex来避免这种情况,但最好使用内置函数或自己编写函数来评估valiable的每个部分。
例如,2月将有28天,30日的费用不是一个可行的日期,但正则表达不是处理这些情况的最佳工具。