我正在尝试创建一个regex
来验证用户名,该用户名应与以下内容匹配:
- 只允许一个特殊字符
(._-)
,并且不能在字符串的极值处 - 第一个字符不能是数字
- 允许的所有其他字符都是字母和数字
- 总长度应在 3 到 20 个字符之间
这是针对 HTML5 验证模式的,所以很遗憾它必须是一个大的正则表达式。
到目前为止,这就是我所拥有的:
^(?=(?![0-9])[A-Za-z0-9]+[._-]?[A-Za-z0-9]+).{3,20}
但是积极的前瞻可以重复多次,允许不止一个特殊字符,这不是我想要的。我不知道如何纠正。