2016-12-28 48 views
2

目前,我正在尋找一個驗證的正則表達式是下列要求:正則表達式與分8個數字,20個字符

  • 至少含有一個8位數字(0-9)。
  • 數字之間允許使用其他字符(a-z)(也是大寫)。
  • 它應該包含最多20個字符(a-z 0-9)。

例如

12345678: true 
123adafa45678: true 
123ab456: false (needs atleast 8 digits, now only 6) 
ab12345a678: true 
ab123456789afgb2459a2: false (more then 20 characters) 

我試圖serveral的事情,但如果我使用類似: (\D*\d\D*){8,}那麼它的工作原理,但它不符合最後一個要求(最多20個字符)。

+0

python對你有好處嗎? –

+0

你使用哪種編程語言? – baao

+0

對不起,AngularJS,但如果我知道如何編寫正則表達式,我想它會是好的。 – JeroenE

回答

1

使用一個超前的8個位數:

^(?=(.*\d){8})[a-zA-Z\d]{8,20}$ 

live demo

+0

這是一個不錯的,謝謝!奇蹟般有效!不得不再做兩次,希望今天晚些時候我能理解它。 :) – JeroenE

+0

是的,只需用'(?:\ D * \ d){8}'替換'(。* \ d){8}''。 –

+0

謝謝Wiktor!改變了。 – JeroenE