Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Twitter用户名的正则表达式不起作用_Php_Regex_Twitter - Fatal编程技术网

Php Twitter用户名的正则表达式不起作用

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

以下用于验证Twitter用户名的正则表达式函数不起作用,因为Twitter名称至少可以是1个字符,最多可以是20个字符。然而,当我测试它时,它允许用户名大于20个字符。我哪里出错了

public function val_username($subject)
{
    return (bool)preg_match('/[a-zA-Z0-9_]{1,20}/', $subject);      
}

您忘记了
$
^

/^[a-zA-Z0-9}{1,20}$/
应该有效

public function val_username($subject)
{
    return (bool)preg_match('/^[a-zA-Z0-9_]{1,20}$/', $subject);      
}

您需要在字符串的开头和结尾添加
^
$
,以匹配字符串的开头和结尾-否则,它将匹配任何一组1-20个字符