使用PHP正则表达式验证用户名

soy*_*nte 13 php regex

我正在尝试使用正则表达式验证PHP中的用户名,我提交的所有内容都未通过检查.我仍然是超级新人.

if ( !preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5-31}$/', $joinUser) )

规则:

  • 必须以字母开头
  • 6-32个字符
  • 只限字母和数字

我一直在使用这个在线测试仪这个.我读了这个帖子这个帖子,但是不能理解太多,因为它们似乎比我的更复杂(lookaheads?和各种特殊字符).

在阅读了我链接的第一个帖子之后,似乎我是一个不太明白"字母"如何影响被认为是可接受的,即外国字符,重音字符等的人之一.我真的只看英文字母(这是ASCII?)和数字0-9.

谢谢.

ste*_*ema 31

唯一的问题是,你拼错了最后一个量词.

{5-31} 必须 {5,31}

所以你的正则表达式会是

if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser) )
Run Code Online (Sandbox Code Playgroud)

而你可以跳过{1},但它没有伤害.