2017-08-30 124 views
-1

我需要一個允許輸入的正則表達式,讓我們說5個符號 - 字母或數字,但字母應該總是後面跟數字?正則表達式:固定長度字母后跟數字

它需要像[0-5 letters][0-5 digits]這樣的東西,但字符串的總長度應該是5個符號。

問題是,我無法設法在應用前兩個表達式之後限制字符串的長度。

我已經試過類似

^[a-zA-Z]{0,5}[0-9]{0,5}$ 

但它不是我想要的東西 - 它不限制長度。

例子:

  • AAAAA
  • AA777

,不應該匹配的例子:

  • AAA7A
  • 77AAA
  • AAA777
+1

那麼,你有什麼試過嗎?你遇到什麼問題?我們不在這裏爲你做你的工作。 – Cerbrus

回答

2

可以使用的正則表達式來斷言字符串的開頭前瞻斷言(?=.{5}$)總是五個長度:

var samples = ['AAAAA',   // match 
 
       'AA777',   // match 
 
       '77777',   // match 
 
       'AAA7A',   // doesn't match pattern 
 
       '77AAA',   // doesn't match pattern 
 
       'AAA777'   // match the pattern but doesn't match the length 
 
       ] 
 

 
console.log(
 
    samples.map(s => /^(?=.{5}$)[a-zA-Z]*[0-9]*$/.test(s)) 
 
)

+0

我喜歡這個答案我打算使用更復雜的斷言。 –

+0

@AlexCollins謝謝。 – Psidom

+0

儘管您可以在前瞻中使用'[a-zA-Z0-9]'而不是'''來立即拒絕非字母數字字符。 –

相關問題