用户名的正则表达式(HTML输入模式)

时间:2018-10-19 00:05:26

标签: regex input

我不太了解如何将正则表达式组合在一起。我一直在尝试将我在这里看到的相似线程中的内容与我一直在使用Google搜索的内容相结合,但是我似乎做错了所有事情。

我唯一正确的是

main

但是当我尝试向模式中添加更多内容时,它似乎不起作用。

注意。这使用了 HTML输入模式属性。 在此方面,我将提供一些帮助,但如果有人可以为我分解解决方案,那么我也将非常感谢,因此我可以更好地理解它。

  • 用户名可以包含大写/小写字母
  • 用户名可以包含数字
  • 用户名可以包含下划线,连字符或句点
  • 用户名不能包含空格
  • 用户名不能包含特殊字符
  • 用户名的长度应在6-20个字符之间

我尝试过这样的事情:

foo

我觉得我有点儿在那儿,但不完全是那儿。

1 个答案:

答案 0 :(得分:0)

以下方法应该起作用:

[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 ),因此省略表示不允许空格;特殊字符也是如此。