以下用于验证Twitter用户名的正则表达式函数不起作用,因为twitter名称最少为1个字符,最多为20个。但是,当我测试它时,它允许大于20个字符的用户名。我哪里出错了?
public function val_username($subject)
{
return (bool)preg_match('/[a-zA-Z0-9_]{1,20}/', $subject);
}
答案 0 :(得分:4)
您忘记了$
和^
/^[a-zA-Z0-9_]{1,20}$/
应该有效
public function val_username($subject)
{
return (bool)preg_match('/^[a-zA-Z0-9_]{1,20}$/', $subject);
}