我尝试匹配此RegExp pattern="([a-zA-Z]+[0-9]*){4,}"
,这意味着:
始终以字母开头,如果他想添加一个数字,那么这一切必须至少为4; aaaa
已经过验证,但aaa4
不是。
我做的伎俩是[a-zA-Z]+[a-zA-Z0-9]{4,}
所以我可以强迫第一个字符成为一个字母,然后有at least 4 alphanumeric
。
答案 0 :(得分:3)
如果您希望始终以字母开头并以一个或多个可选数字(必须是最少4个元素)结束,那么您的正则表达式应为
pattern="([a-zA-Z]{4,}\d*|[a-zA-Z]{3,}\d+)"
虽然你可能想要这个解决方案
[a-zA-Z][a-zA-Z0-9]{3,}
在这种情况下,您会得到一个字母和三个或更多字母和数字字符。
答案 1 :(得分:0)
您当前的模式实际上做的是查找一个或多个字母后跟0或更多数字,并且整个模式必须重复至少4次。
要获得您想要的内容,您需要使用管道并指定两种不同的模式和negative lookahead:
[a-zA-Z]+[0-9]{4,}|[a-zA-Z]+(?![0-9])
这意味着查找a-z
一次或多次,然后查找4位或更多位或一次或多次查找a-z
,而不是后跟数字。
Enter text: <input type="text" pattern="^[a-zA-Z]+[0-9]{4,}|[a-zA-Z]+(?![0-9])">