用户名的正则表达式不起作用

时间:2014-01-28 10:52:57

标签: java regex

以下是验证用户名的正则表达式:

^([a-zA-Z0-9]+([\\s.]?[a-zA-Z0-9]+)*){6,20}$

用户名应在6-20个字符之间,spaceperiod(.)后跟一个字或字符。

但是这个正则表达式对于以下示例失败,即使整个字符串长度(包括空格至少为6个字符):

  1. joe jim
  2. adam rick
  3. 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您可以使用正向前瞻来确保包含6到20个字符:

^(?=.{6,20}$)[a-zA-Z0-9]+([\\s.][a-zA-Z0-9]+)*$
 ^----------^

此处你不应该真正需要?空格/句号。

答案 1 :(得分:0)

您可以将您的用户与此匹配。

^([a-zA-Z0-9\s\.]){6,20}$

这可能不仅仅是您的登录。 因为这将匹配多个空格或periode。 你可以使用另一个正则表达式,你登录时只有一个periode或空格。

^[a-zA-Z0-9]+[\s\.]?[a-zA-Z0-9]+$

希望它有所帮助。

相关问题