我正在检查用户输入的用户名
我在使用 preg_match() 在 PHP 中验证用户名,但是似乎无法按照我的意愿工作。我要求 preg_match() 实现以下功能:
- 仅接受字母、数字和 . - _
即仅允许使用字母数字、点、破折号和下划线,我尝试了 htaccess 中的正则表达式,它看起来像这样
([A-Za-z0-9.-_]+)
像这样但似乎不起作用,对于简单的字母用户名它会返回false。
$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()和用户名中回答,但正则表达式仍然存在问题。
更新
我正在使用xdazz提供的代码,在函数内部这样使用。
//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';
}