所以我想要一个正则表达式,它可以接受数字或字母字符。如果数字是1且可以是3到8个字符,但长度不能为6。如果是字母,则可以是3到6个字符。
这是我现在正在使用的。我的问题是,如果是数字,如何避免使用6个字符的长度?
("^[1][0-9]{2,7} | [A-Za-z]{3,6})$")
有人可以建议我吗?
只需将数字部分分为两个子部分:
("^([1]([0-9]{2,4}|[0-9]{6,7}) | [A-Za-z]{3,6})$")
您可以使用
^(?![0-9]{6}$)(?:1[0-9]{2,7}|[a-zA-Z]{3,6})$
请参见regex demo
详细信息
^
-字符串开头(?![0-9]{6}$)
-不允许使用6位数字的字符串](?:1[0-9]{2,7}|[a-zA-Z]{3,6})
-要么1[0-9]{2,7}
-1
然后是2到7位数字|
-或[a-zA-Z]{3,6}
-三到六个ASCII字母]$
-字符串结尾