微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用preg_match检查字母数字点破折号和下划线的正则表达式是什么?

我正在检查用户输入的用户名

我正在尝试使用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回答,但仍然有一些错误的正则表达式.

更新

我正在使用像这样的函数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';
}

解决方法:

你错过了(一个或多个,*为零或更多),或者你的正则表达式只匹配一个字符串和一个字符串.

if (preg_match('/^[A-Za-z0-9._-]+$/' , $text)) {
   echo 'true';   
} else {
   echo 'false';
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐