允许单个空格但具有字符限制的正则表达式。

3

请原谅我的无知,但我真的需要帮助,我需要这个正则表达式:[A-Za-z0-9]+\s?[A-Za-z0-9]+(一个允许在中间有一个空格的用户名,但不能在开头或结尾有空格),但是限制字符总数在3到30之间。

我尝试使用负向预查来调整这个答案,但迄今为止还没有成功。

它必须是一个正则表达式,不能使用jQuery或其他任何东西。

2个回答

3
您可以使用正向预查来解决此问题:
^(?=.{3,30}$)[A-Za-z0-9]+(?:\s[A-Za-z0-9]+)?$

请见正则表达式演示
详细信息:
  • ^ - 字符串开头
  • (?=.{3,30}$) - 可以有3到30个字符(除了换行符,将.替换为[A-Za-z0-9\s]更具体)
  • [A-Za-z0-9]+ - 1个或多个字母数字字符
  • (?:\s[A-Za-z0-9]+)? - 可选的(1或0次)出现
    • \s - 空格
    • [A-Za-z0-9]+ - 1个或多个字母数字符号
  • $ - 字符串结尾。

3

您可以使用:

(?=^[A-Za-z0-9]+\s?[A-Za-z0-9]+$).{3,30}

请查看regex101.com上的演示,它将匹配:

username123    # this one
user name 123  # this one not (two spaces!)
user name123   # this one
u sername123   # this one
 username123   # this one not (space in the beginning!)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接