我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法按照我想要的方式运行它.我需要preg_match()来:
>只接受字母,数字和. – _
即只有字母数字点划线和下划线,我试过htaccess的正则表达式,就像这样
([A-Za-z0-9.-_]+)
喜欢这种方式,但它似乎没有工作,它给简单的alpha用户名假.
$text = 'username';
if (preg_match('/^[A-Za-z0-9.-_]$/' , $text)) {
echo 'true';
} else {
echo 'false';
}
我怎样才能使它工作?
//check if username is valid
function isValidUsername($str) {
return preg_match('/[^A-Za-z0-9.-_]/', $str);
}
我试图在preg_match() and username回答,但仍然有一些错误的正则表达式.
更新
//check if username is valid
function isValidUsername($str) {
if (preg_match('/^[A-Za-z0-9._-]+$/' , $str)) {
return true;
} else {
return false;
}
}
并检查它
$text = 'username._-546_546AAA';
if (isValidUsername($text) === true) {
echo 'good';
}
else{
echo 'bad';
}
解决方法:
你错过了(一个或多个,*为零或更多),或者你的正则表达式只匹配一个字符串和一个字符串.
if (preg_match('/^[A-Za-z0-9._-]+$/' , $text)) {
echo 'true';
} else {
echo 'false';
}