2017-08-30 86 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]'而不是'''来立即拒绝非字母数字字符。 –

相关问题