【发布时间】:2021-06-09 03:10:47
【问题描述】:
我正在尝试编写一个正则表达式来验证必须满足以下条件的用户名:
- 必须是字母数字,至少包含一个数字
- 没有符号或空格(只有字母数字)。
- 没有连续的相同字符连续超过两个。
- 至少包含 8 个字符。
这是我尝试过的东西
\^(?=.*\d)((.)\2?(?!\2))+.{8,}$\
aaa -> 不匹配。
jjumper13 -> 匹配。
@aabfrff -> 不匹配。
abdirahm1 -> 匹配。
tryand err -> 不匹配。
666abcde -> 不匹配。
bBb123bBb -> 不匹配。
【问题讨论】:
-
您需要提供您期望的输入类型的示例。
-
您的规范中的英文存在很多歧义。 “字母数字或至少一个数字”?你的意思是“字母数字和至少一个数字”? “无符号”仅表示字母数字,或者....? “最少字符是一行 8 个”是什么意思?感谢您的澄清。
-
666算作“连续字母”吗? -
您写了
(?=.*\d),这是否意味着您打算包含至少一个数字? -
666 是也算作连续字母和 (?=.*\d) 是的,至少一个
标签: javascript regex validation