如何更改下面的正则表达式只允许使用小写字母?
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;
}
答案 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