2017-06-09 122 views
1

我想爲軍隊和平民的驗證時間創建正則表達式。在軍事(24小時)和平民(23:59)格式匹配時間的正則表達式

我剛剛發現這個軍事時間。

^([01] \ d | 2 [0-3]):?([0-5] \ d)$

我需要爲開始時間創建模式結束時間軍民兩用。

例如,我想在以下格式的文本框中匹配時間。

[EDITOR請勿編輯THIS MY BOLD例]

  • 10:30-19:30
  • 1030年至1930年
  • 10-19

如何在JavaScrip中驗證T'

請幫助/建議我找模式

enter image description here

+1

那你試過嗎?順便說一句,你明白,你所提供的手段正則表達式?這是很容易修改它可以達到你想要的效果 – ArturFH

+0

對不起,先生,我不知道如何讓它同時驗證。 '^([01] \ d | 2 [0-3]):?([0-5] \ d)$'這一個只用於單一時間,例如** 1200 **,但我的要求是軍事和民用我們都可以在文本框中設置相同的開始時間到結束時間。 –

+0

您可以將較大的正則表達式組合成單個表達式'+'。使用這個技巧,你可以爲軍事變體和另一個變種寫出一個好的表達平民格式無關的表達。 –

回答

1

下面是做這件事的一種方式。

^(?:[01]\d|2[0-3])(?::?[0-5]\d)?-(?:[01]\d|2[0-3])(?::?[0-5]\d)?$ 

它基本上是兩個你要求之間的連字符。這也使得可選的分鐘(由可選的非捕獲組(?:...)?

Check it out here at regex101在有他們。

+0

只是不要忘記使用錨點爲了不符合'ABCE19:00-21:00MOREHERE'。 –

+0

非常感謝你的超級指導先生。 @ClasG –

+0

@WiktorStribiżew注意先生 –