Javascript 需要帮助为用户名编写正则表达式吗
嘿,所以我在寻找一种regrex图案:Javascript 需要帮助为用户名编写正则表达式吗,javascript,regex,Javascript,Regex,嘿,所以我在寻找一种regrex图案: 一行中只允许两个或一个\u,但不允许更多,可以结束-开始并将\u置于两者之间 最多20个,最少3个字符 一行中只允许一个句点,不能在句点中开始或结束 接受A-Z和1-9 通过和失败的一些示例包括: .test #fail _test #pass _.test #pass __test #pass test_ #pass te_.st #pass te.st #pass ..test #fail 到目前为止,我已经有了^[\w](?!.*.{2})(?
- 一行中只允许两个或一个
,但不允许更多,可以结束-开始并将\u
置于两者之间\u
- 最多20个,最少3个字符
- 一行中只允许一个句点,不能在句点中开始或结束
- 接受A-Z和1-9
.test #fail
_test #pass
_.test #pass
__test #pass
test_ #pass
te_.st #pass
te.st #pass
..test #fail
到目前为止,我已经有了^[\w](?!.*.{2})(?!.*.{2})[\w.]{1,28}$
,它适用于所有情况,但不能检测单词之间和末尾的\
。任何帮助都将不胜感激!这伤了我的大脑好几个小时了
一行中只允许一个句点,不能在句点中开始或结束
字符串开头的^\.
、\.$
和\.\.
的负前瞻
一行中只能有两个或一个,但不能有更多,可以结束-开始,也可以在两者之间
从字符串开头开始对\uu
进行负前瞻
最多20个,最少3个字符
^(?!.*___|\.|.*\.$|.*\.\.)[a-z1-9_.]{3,20}$
在实现其他逻辑后,匹配并使用3-20个允许的字符
^(?!.*___|\.|.*\.$|.*\.\.)[a-z1-9_.]{3,20}$
-从字符串开始:^
-确保匹配不会:(?!。。$。$。。。。。。。。)
-包含三个下划线*\uuuuuuu
-从\.
开始
-以*\.$
结尾
-包含双句点*\。\.
-使用所有允许的字符匹配字符串正文中的3-20个字符(不区分大小写)[a-z1-9.]{3,20}
\w
包含0
允许为零吗?也只允许使用大写字母吗?我如何将其转换为2-3个正则表达式?同样抱歉,它的0-9和大写字母是允许的。例如,如果您现有的正则表达式所缺少的只是检测\uuu
,只需添加第二个正则表达式,然后执行str.match(regex1)和!str.match(regex2)
或similarIMO这样做也更具可读性,尽管没有那么有趣:哦,谢谢你这么好的解释和快速的响应,非常感谢@BananaGuy18你应该读:对不起:p全新的溢出我想你也可以省略第一个前瞻,用量词重复字符类,而不是^(?。*.*.$.$..*.$..*.-.-.\.[a-z1-9.]{3,20}$
。@第四只鸟你完全正确,我最初用重复字符集来表示,但后来意识到这太重复了,忘记了将长度检查重构到消费令牌中。