2012-06-12 92 views
4

正則表達式我需要一個正則表達式格式用於驗證的時間與AM/PM爲12小時時間格式

我用這個

^(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$ 

但不接受任何時間。

我的時間格式是12hr格式(03:23:15 AM)。 任何人都知道正則表達式與此工作?

+4

你*有*使用正則表達式,而不是'DateTime.TryParse' ?請注意,您的正則表達式甚至不會嘗試包括上午/下午,也可以接受高達23作爲小時數... –

回答

1

試試這個:

(1[012]|[1-9])(:[0-5][0-9]){2}(\\s)?(?i)(am|pm) 

正則表達式包括上午下午太

(\\s)? - follow by a white space (optional) 
(?i) - next checking is case insensitive 
(am|pm) - follow by am or pm 
2

你可以試試這個?

([0][0-9])|([1][0-2])\:[0-5][0-9]\:[0-5][0-9][:b]*(AM|PM|am|pm) 
  • 匹配XX:YY:ZZ其中
  • 第一項([0][0-9])|([1][0-2])比賽XX至00-09或10-12
  • 後續術語[0-5][0-9]約束YY,ZZ到分鐘,00-秒59包容
  • 空間是可選
  • 最後上午或下午的大寫或小寫匹配
1

[01][0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)應該與您的示例匹配。

[01]\d(:[0-5]\d){2} (AM|PM)如果你想簡化它。

編輯:正如評論點出這是行不通的,試試這個:([01][0-2]|0?[1-9])(:[0-5][0-9]){2} (AM|PM)

+0

還「19:00:00 AM」 – Rawling

2

試試這個:

[0][0-9]|[1][0-2][:][0-5][0-9][:][0-5][0-9][ ][AM]|[PM] 
相關問題