模式分组在HTML5中进行工作

时间:2015-12-06 22:13:26

标签: regex html5

我尝试匹配此RegExp pattern="([a-zA-Z]+[0-9]*){4,}",这意味着:

始终以字母开头,如果他想添加一个数字,那么这一切必须至少为4; aaaa已经过验证,但aaa4不是。

我做的伎俩是[a-zA-Z]+[a-zA-Z0-9]{4,}所以我可以强迫第一个字符成为一个字母,然后有at least 4 alphanumeric

2 个答案:

答案 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])">