我想创建一个regex
验证应符合以下的用户名:允许正则表达式匹配用户名
- 只有一个特殊字符
(._-)
,它绝不能以字符串的极值 - 第一个字符不能是数
- 所有允许的其它字符是字母和数字
- 总长度应为3之间和20个字符
这是一个HTML5验证模式,很遗憾,它必须是一个大的正则表达式。
到目前为止,这是我的本钱:
^(?=(?![0-9])[A-Za-z0-9]+[._-]?[A-Za-z0-9]+).{3,20}
但正向前查找可重复超过一次允许超过一个特殊字符,这不是我想要的东西。而我不知道如何改正这一点。
不是一个答案 - 但是你需要打破'.'在'[._-]'。 – amit 2015-02-08 10:44:11
对于这个复杂的东西,你为什么选择使用html验证模式呢?您可以触发处理验证的事件而不是模式。 – Eclecticist 2015-02-08 10:46:18
@amit [._-]是列表中的单个字符“._-”的字面意思,所以点不被认为是任何字符,所以我认为我不需要破坏它 – Tofandel 2015-02-08 10:48:40