我不太明白如何将正则表达式放在一起。我一直试图将我在这里看到的类似线程中的东西与我一直在谷歌搜索的东西结合起来,但我似乎做错了。
我唯一能做对的是
[A-Za-z0-9]{6,20}
但是当我尝试向模式添加更多内容时,它似乎不起作用。
注意这是使用HTML 输入模式属性。 我将不胜感激在这方面的一些帮助,但如果有人能为我分解解决方案,我也会不胜感激,这样我就可以更好地理解它。
- 用户名可以包含大写/小写字母
- 用户名可以包含数字
- 用户名可以包含下划线、连字符或句点
- 用户名不能包含空格
- 用户名不能包含特殊字符
- 用户名长度应介于 6-20 个字符之间
我试过这样的事情:
[A-Za-z0-9_-]{6,20}S
我觉得我有点在那里,但不是完全在那里。
以下方法应该有效:
[A-Za-z0-9-_.]{6,20}
分解一下:
A-Z
任何大写字符a-z
任何小写字符0-9
任意数字-
连字符(根据其放置顺序由"\"转义(.
时期
连字符不需要转义,具体取决于顺序:
[A-Za-z0-9-_.]{6,20}
或
[A-Za-z0-9_.-]{6,20}
应该有效,而以下内容不应该:
[A-Za-z0-9_-.]{6,20}
在您使用的模式中,S
匹配任何非空格字符,因此它需要在 6-20 个字符字符串之后增加一个字符。由于方括号内没有空格(s
(,省略表示不允许使用空格;对于特殊字符也是如此。