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';
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...