网站首页 文章专栏 php常用验证(关于用户信息)

php常用验证(关于用户信息)

编辑时间:2019-05-05 18:15:04 作者:苹果 浏览量:1928


    前言:列出五种常见的情况:验证用户名,密码强度,邮箱格式,手机号格式和身份证格式


  1. 验证用户名是否合法,必须是以字母开头,只能包含字母数字下划线和减号,6到18位

function checkUserName($username)
{
    if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9_-]{5,17}$/', $username)) {
        return 1;
    } else {
        return 0;
    }
}

2.验证密码强度,6-16位,,至少有一个数字,一个大写字母,一个小写字母和一个特殊字符,四个任意组合

function checkPassword($password)
{
    if (preg_match('/(?=^.{6,16}$)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*]).*$/', $password)) {
        return 1;
    } else {
        return 0;
    }
}

3.验证邮箱是否合法,必须有@,前边最少2个字符,字母或数字开头,域名部分最少1位,后缀可以是一级也可以是二级,最少两位

function checkEmail($email)
{
    $email = strtolower($email);// 全部转小写(邮箱不区分大小写)
    if (preg_match('/^[a-z0-9]{1}[a-z0-9_-]{1,}@[a-z0-9]{1,}(\.[a-z]{2,})*\.[a-z]{2,}$/', $email)) {
        return 1;
    } else {
        return 0;
    }
}

4.验证手机号是否合法

function checkPhone($phone)
{
    if (preg_match('/^1[345678]{1}\d{9}$/', $phone)) {
        return 1;
    } else {
        return 0;
    }
}

5.验证身份证号是否合法

function checkIdCard($idcard)
{
    if (preg_match('/^[1-9]{1}\d{5}[1-9]{2}\d{9}[Xx0-9]{1}$/', $idcard)) {
        return 1;
    } else {
        return 0;
    }
}


6.验证银行卡号是否合法

function checkBankCard($idcard)
{
        $pattern = '/^\d{11,24}$/';
        if (!preg_match($pattern, $card)) {
            return false;
        }
        
        //如果是标准银联卡,检测卡号是否正确
        if (self::startsWith($card, ['62', '638888', '685800'])) {
            // step2 LUHN 算法校验
            $len = strlen($card);
        
            $sum = 0;
            for ($i = 0; $i < $len; $i++) {
                if (($i + $len) & 1) { // 奇数
                    $sum += ord($card[$i]) - ord('0');
                } else { // 偶数
                    $tmp = (ord($card[$i]) - ord('0')) * 2;
                    $sum += floor($tmp / 10) + $tmp % 10;
                }
            }
            return $sum % 10 === 0;
        }
        
        return true;
}



    出自:何冰华个人网站

    地址:https://www.hebinghua.com/

    转载请注明出处


来说两句吧
最新评论