确保用户名仅包含:AZ,az,.,_, - ,0-9(无逗号)PHP

use*_*422 0 php regex string validation

可能重复:
字母,数字的正则表达式和 - _

我在PHP中创建一个注册表单,需要确保用户的用户名不包含不需要的字符.无论如何我可以创建一个返回true的函数A-Z a-z 0-9 - . _.

此外,我不希望用户的电子邮件来自雅虎,因为他们拒绝发送的确认电子邮件.伴随着__FILTER_VALIDATE_EMAIL__什么,我需要补充的吗?

PS:我上面提到的角色有什么问题吗?我注意到gmail不允许这样做-_.和YouTube仅限字母数字字符.

Sam*_*Sam 8

编辑使用\ w而不是a-zA-Z0-9_

if(preg_match("/[^\w-.]/", $user)){
    // invalid character
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL) || strstr($email,'@yahoo.com')) {
    // either invalid email, or it contains in @yahoo.com
}
Run Code Online (Sandbox Code Playgroud)