正则表达式仅允许使用小写字母

时间:2013-01-01 01:45:30

标签: php regex

  

可能重复:
  Regular Expressions: low-caps, dots, zero spaces

如何更改下面的正则表达式只允许使用小写字母?

function valid_username($username, $minlength = 3, $maxlength = 30)
{

    $username = trim($username);

    if (empty($username))
    {
        return false; // it was empty
    }
    if (strlen($username) > $maxlength)
    {
        return false; // to long
    }
    if (strlen($username) < $minlength)
    {

        return false; //toshort
    }

    $result = ereg("^[A-Za-z0-9_\-]+$", $username); //only A-Z, a-z and 0-9 are allowed

    if ($result)
    {
        return true; // ok no invalid chars
    } else
    {
        return false; //invalid chars found
    }

    return false;

}

4 个答案:

答案 0 :(得分:14)

你的角色类中同时有A-Z和a-z,只省略A-Z以仅允许a-z(小写)字母。即。

"^[a-z0-9_\-]+$"

答案 1 :(得分:2)

不推荐使用函数ereg。使用preg_match。你为什么不只使用函数strtolower? preg_match('/ ^ [a-z0-9] + $ /',$ nickname);

编辑:

  

preg_match('/ ^ [a-z] + $ /',$ user);

答案 2 :(得分:2)

您只需从正则表达式中删除A-Z

此外,由于您已经在使用正则表达式,因此可以将所有内容放入其中,如下所示:

function valid_username($username, $minlength = 3, $maxlength = 30)
{
    $regex = "/^[a-z0-9_\-]{{$minlength},{$maxlength}}$/";

    return preg_match($regex, trim($username)) === 1;
}

它将确保用户名不为空,具有允许的长度,并且只包含允许的字符。

答案 3 :(得分:1)

最好的选择是Dave和Jordi12100的回答:

使用pre_match()并删除A-Z