Javascript 具有特殊规则的用户名正则表达式?

Javascript 具有特殊规则的用户名正则表达式?,javascript,regex,Javascript,Regex,用户名规则: 长度8-30 允许使用特殊字符:_ 仅以字符开头[a-zA-Z] 不能以数字开头,但可以在数字之间 中间可以有多个句号() 只能在中间有多个下划线 我喜欢正则表达式: ^([a-zA-Z0-9]+[_-])*[a-zA-Z0-9]+\.[a-zA-Z0-9]+$ ^[a-zA-Z0-9]*$ ^([A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*){8,}$ ^([\w]){8,}$ 但是没有一个在工作你就快到了!使用像这样的工具,让你的生活更轻松

用户名规则:

  • 长度8-30
  • 允许使用特殊字符:_
  • 仅以字符开头
    [a-zA-Z]
  • 不能以数字开头,但可以在数字之间
  • 中间可以有多个句号(
  • 只能在中间有多个下划线
我喜欢正则表达式:

^([a-zA-Z0-9]+[_-])*[a-zA-Z0-9]+\.[a-zA-Z0-9]+$
^[a-zA-Z0-9]*$
^([A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*){8,}$
^([\w]){8,}$

但是没有一个在工作

你就快到了!使用像这样的工具,让你的生活更轻松

我认为这个正则表达式可以满足您的需要:

^[a-zA-Z][a-zA-Z0-9._]{6,28}[a-zA-Z0-9_]$

regex101的另一个优点是详细解释了每个步骤。另外,它也是免费的。

您可以添加一些应该通过表达式的用户名示例,而一些不应该通过表达式的用户名示例吗?请共享一些有效和无效用户名的版本,这样可以更容易地理解您要做的事。例如,什么是只能在中间有多个下划线的意思?在数学中间?在第一个字符之后和最后一个字符之前?规则有点模糊,试试看。请提供一份全面的测试用例列表。@WiktorStribiżew这应该是一个答案,而不是一个注释,并解释它是如何组成的以及您测试它的依据。考虑到可能的组合数量,测试用例的“综合”列表可能相当庞大。也许你的意思是“代表性”的测试用例集<代码>介于两者之间。。。在什么之间?刚刚在你的表达式中做了一个修改:^[a-zA-Z]([a-zA-Z0-9.{6,28})[a-zA-Z0-9\]$。现在它完美了。