Regex 验证用户名的正则表达式

Regex 验证用户名的正则表达式,regex,Regex,我必须验证用户名,要求如下: 长度至少为8,最大为20 它必须包含字母a-z,不包含大写字母 它可以包含符号点、连字符或下划线,禁止使用其他符号 有人知道这个正则表达式吗?因为你没有花太多的精力去尝试解决这个问题,我也不会。但是,为了给你一个开始,我将为你提供一个正则表达式,它将帮助你构建你想要的正则表达式: [a-z\.-\\\{8,20} 在这里你可以看到: []-字符类:其中的任何字符都可以匹配 {}-量词:长度在8到20个字符之间 a-z-从a到z的所有字符范围 \-匹配一个文字点 \-

我必须验证用户名,要求如下:

长度至少为8,最大为20 它必须包含字母a-z,不包含大写字母 它可以包含符号点、连字符或下划线,禁止使用其他符号
有人知道这个正则表达式吗?

因为你没有花太多的精力去尝试解决这个问题,我也不会。但是,为了给你一个开始,我将为你提供一个正则表达式,它将帮助你构建你想要的正则表达式:

[a-z\.-\\\{8,20}

在这里你可以看到: []-字符类:其中的任何字符都可以匹配 {}-量词:长度在8到20个字符之间 a-z-从a到z的所有字符范围 \-匹配一个文字点 \--匹配文字连字符 _-匹配文字下划线

然而,这个正则表达式是有缺陷的:例如,由8个或更多点组成的用户名也被接受:……,只有符号的组合也是如此,没有字母:————————————————。我相信这不是预期的行为


你可以在这里看到一个演示:

问得好。努力是什么?是否已在SO中搜索此内容?请参阅联机文档提示:以?=开头的先行表达式。有了它,你可以修复Asunez提到的bug。