检查Pre Preg是否为False而不是True

时间:2013-09-20 20:14:49

标签: php preg-match username

我有这个代码,确保用户名只是字母和数字但是我的代码设置的方式我需要它来检查preg_match是否为false。现在它说“如果安全回应这个”我需要它的逻辑说“如果不安全说这个”。有人可以帮助我吗?

if (preg_match('/[A-Z]+[a-z]+[0-9]+/', $username))
{
    echo 'Secure enough';
}

2 个答案:

答案 0 :(得分:24)

你可以否定这样的情况:

if (!preg_match('/^[A-Za-z0-9]+$/', $username))
{
    echo 'Secure enough';
}

此外,如果您的意思是“字母数字”(仅限字母和数字),那么您的正则表达式必须为[A-Za-z0-9]+

如果用户名1)以大写字母(或多于一个)开头,则代码中的正则表达式将匹配2)后跟一个或多个小写字母,3)以一个或多个数字结尾

编辑:

我真的不确定这是不是你想要的。你可以做,基本上:

if (preg_match('/^[A-Za-z0-9]+$/', $username)) {
    echo 'Is only letters and numbers';
} else {
    echo 'Contains some other characters';
}

你想确保字符串包含特殊字符,以便它“足够安全”吗?或者你想确保包含特殊字符,所以在某些时候处理特殊字符不会有任何问题吗?

安全密码将是一个具有特殊字符的密码,虽然您可能不想强制执行此密码(取决于您的目标受众),但您通常希望系统支持密码中的特殊字符。

答案 1 :(得分:2)

那是什么!运营商是为了,所以只说

if (!preg_match.....)

当然这也就是else子句的用法,无论是基础编程,还是在询问这些简单的事情之前都需要阅读基础教程。