preg_match用户验证

时间:2017-07-07 02:07:12

标签: php regex

我正在尝试为用户验证制作 preg_match 规则

仅允许a-z - A-Z - 0-9 和字符_- =?!@:。, 没有空格

我已经尝试了很多组合,但似乎没有人工作

这就是我想要的:

    if(preg_match('idk what to use here', 'Myusername@123?')) {
        return true;
    }

    if(preg_match('idk what to use here', '$Hello')) {
        return false;
    }

    if(preg_match('idk what to use here', 'Hello 123')) {
        return false;
    }

任何人都知道这个正则表达式? 谢谢:))

1 个答案:

答案 0 :(得分:0)

使用类,但请确保转义连字符或将其作为最后一个字符,否则它表示范围。使用^$要求所有输入字符与模式匹配:

$regex = "/^[A-Za-z0-9_=?!@:.,-]*$/";

var_dump(preg_match($regex, 'Myusername@123?'));
var_dump(preg_match($regex, '$Hello'));
var_dump(preg_match($regex, 'Hello 123'));