我需要一个允许输入的正则表达式,让我们说5个符号 - 字母或数字,但字母后面应始终跟数字?
它必须类似[0-5 letters][0-5 digits]
,但字符串的总长度应为5个符号。
问题是我在应用前两个表达式后无法限制字符串的长度。
我尝试过像
这样的东西^[a-zA-Z]{0,5}[0-9]{0,5}$
但它不是我想要的 - 它不会限制长度。
示例:
不应匹配的示例:
答案 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))
)