RegEx:固定长度的字母后跟数字

时间:2017-08-30 14:03:13

标签: javascript regex

我需要一个允许输入的正则表达式,让我们说5个符号 - 字母或数字,但字母后面应始终跟数字?

它必须类似[0-5 letters][0-5 digits],但字符串的总长度应为5个符号。

问题是我在应用前两个表达式后无法限制字符串的长度。

我尝试过像

这样的东西
^[a-zA-Z]{0,5}[0-9]{0,5}$

但它不是我想要的 - 它不会限制长度。

示例:

  • AAAAA
  • AA777
  • 77777

不应匹配的示例:

  • AAA7A
  • 77AAA
  • AAA777

1 个答案:

答案 0 :(得分:2)

您可以在正则表达式的开头使用前瞻断言(?=.{5}$)来断言字符串的长度始终为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))
)