请原谅我的无知,但我真的需要帮助,我需要这个正则表达式:[A-Za-z0-9]+\s?[A-Za-z0-9]+
(一个用户名允许中间有一个空格,但不能在开头或结尾。)但是限制字符总数至最小3和最大30。
我尝试使用否定前瞻来调整this answer,但到目前为止还没有用。
它必须是一个正则表达式,它不能使用jQuery或其他任何东西。
答案 0 :(得分:3)
你可以在这里使用积极的前瞻:
^(?=.{3,30}$)[A-Za-z0-9]+(?:\s[A-Za-z0-9]+)?$
请参阅regex demo。
详细说明:
^
- 字符串开头(?=.{3,30}$)
- 可以有3到30个字符(除了换行符,将.
替换为[A-Za-z0-9\s]
更具体)[A-Za-z0-9]+
- 1个字母数字字符(?:\s[A-Za-z0-9]+)?
- a的可选(1或0)次出现
\s
- 空白[A-Za-z0-9]+
- 1个以上的字母数字符号$
- 字符串结束。答案 1 :(得分:3)
您可以使用:
(?=^[A-Za-z0-9]+\s?[A-Za-z0-9]+$).{3,30}
见a demo on 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!)