最少 8 位数字,20 个字符的正则表达式

Regex with min 8 digits, 20 characters

我目前正在寻找可验证以下要求的正则表达式:

示例

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

我尝试了很多东西,但如果我使用类似的东西: (\D*\d\D*){8,} 可以,但不符合最后的要求(最多 20 个字符)。

对 8 位数字使用前瞻:

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

live demo