Javascript 用户名正则表达式量词(长度)-无法使其正常工作

Javascript 用户名正则表达式量词(长度)-无法使其正常工作,javascript,regex,validation,Javascript,Regex,Validation,我正在尝试通过以下规则验证用户名: 1-字符串的总长度必须介于5到12个字符之间 2-必须至少以一个字母字符[a-zA-Z]开头 3-在此之后,它可以包含任何字母数字字符,最大值为:[[u-.] 4-它不能以以下任何一个结尾:[[u-.],它只能以至少一个字母数字结尾 性格 这是我正在处理的正则表达式: ^[a-zA-Z]+[a-zA-Z0-9]+[a-zA-Z0-9]{5,12}$ 以下是问题: 仅当字符串长度至少为15个字符时才进行验证,即使我有{5,12} b它不验证字符串是否包含[-.]

我正在尝试通过以下规则验证用户名:

1-字符串的总长度必须介于5到12个字符之间

2-必须至少以一个字母字符[a-zA-Z]开头

3-在此之后,它可以包含任何字母数字字符,最大值为:[[u-.]

4-它不能以以下任何一个结尾:[[u-.],它只能以至少一个字母数字结尾 性格

这是我正在处理的正则表达式: ^[a-zA-Z]+[a-zA-Z0-9]+[a-zA-Z0-9]{5,12}$

以下是问题:

仅当字符串长度至少为15个字符时才进行验证,即使我有{5,12}

b它不验证字符串是否包含[-.]中的一个作为第二个字符

c像aaa-a-a-AAAAA这样的字符串即使有[-.]中的多个字符串,也会进行验证 实际上,字符串中的字母数字字符越多,[-.]的重复次数就越多,如果它们相邻,它至少可以发出尖叫声

d如果在一个数字后我写了一个字母,然后写了一个[-.]-它不能验证

有人能帮忙吗?

试试这个:

^[a-zA-Z](?=[^_.-]*[_.-]?[^_.-]*$)[\w.-]{3,10}[a-zA-Z0-9]$

使用正向前瞻?=[^.-]*[^.-]?[^.-]*$检查字符串中是否存在最大的[.-.]值。

这太完美了!非常感谢。