我想使用正則表達式來驗證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]" />
我想使用正則表達式來驗證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]?[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不是一個可行的日期,但是正則表達式並不是處理這些情況的最佳工具。
以匹配00:00
hh:mm
到23:59
你可以使用:
<f:validateRegex pattern="(?:2[0-3]|[01][0-9]):[0-5][0-9]" />