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

时间:2012-11-15 07:00:27

标签: php regex

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

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

规则:

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

我一直在与this online testerthis one too合作。我读过this threadthis thread,但是他们无法理解,因为它们似乎比我的更复杂(向前看?和各种特殊字符)。

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

感谢。

3 个答案:

答案 0 :(得分:30)

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

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

所以你的正则表达式将是

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

你可以跳过{1},但不会受到伤害。

答案 1 :(得分:4)

显然你需要改变的是5-31的5,31。

工作示例:

if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5,31}$/', "moo123"))
{
    echo 'succeeded';
}
else
{
    echo 'failed';
}

答案 2 :(得分:2)

试试这个:

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