公共方法整合(二)正则验证类

本文同样存储一些本人使用的公共方法

不过本篇主要存储的是一些验证方法

方法目录:

  1. 正则验证手机号码格式是否正确
  2. 正则验证身份证号码
  3. 正则判定用户名

 


 

1.正则验证手机号码格式是否正确

方法:

/**
 * 正则判定手机号码格式是否正确
 * @param  [type]  $phone 手机号码
 * @return boolean        判定结果
 */
function is_mobile($phone)
{
    // $preg = '/^(0|86|17951)?(13[0-9]|15[0-9]|17[0-9]|18[0-9]|14[57])[0-9]{8}$/';
    #正则方法 上面早期的部分号段不全
    $preg = '/^[1][3,4,5,6,7,8,9][0-9]{9}$/';

    return (bool) preg_match($preg, $phone);
}

 

2020年08月27日

 


 

2.正则验证身份证号码

方法:

/**
 * 正则判定身份证号码是否正确
 * @param  [type]  $idcard 身份证号码
 * @return boolean         判定结果
 */
function isIdCard($idcard)
{
    
    $preg = '/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/';

    return (bool) preg_match($preg, $idcard);
}
#方法二
/**
 * 验证18位身份证(计算方式在百度百科有)
 * @param  string $id 身份证号码
 * @return [type]     判定结果
 */
function check_identity($id='')
{
    $set = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
    $ver = array('1','0','x','9','8','7','6','5','4','3','2');
    $arr = str_split($id);
    $sum = 0;
    for ($i = 0; $i < 17; $i++)
    {
        if (!is_numeric($arr[$i]))
        {
            $result['status'] = 0;
            $result['info'] = '请输入18位身份证号';
            return $result;
        }
        $sum += $arr[$i] * $set[$i];
    }
    $mod = $sum % 11;
    if (strcasecmp($ver[$mod],$arr[17]) != 0)
    {
           $result['status'] = 0;
        $result['info'] = '您的身份证号不符合中国公民,请检查';
        return $result;
    }
    return TRUE;
}

 

2020年08月07日

 


 

3.正则判定用户名

方法:

#正则判定用户名
#方法一
/**
 * 正则判定用户名 大写字母为首的6-20
 * @param  [type]  $users 用户名
 * @return boolean        判定结果
 */
function isUsers($users)
{
    $preg = '/^[a-zA-Z]\w{6,20}$/';
    return (bool)preg_match($preg, $users);
}
#方法二
/**
 * 正则判定用户名是否为中文
 * @param  [type]  $truename 用户名
 * @return boolean           结果
 */
function isName($truename)
{
    // $preg = '/([\u4e00-\u9fa5]){2,4}/';
    // $preg = '/^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,8}$/';
    $preg = '/^[\x{4e00}-\x{9fa5}]{2,8}+$/u';

    return (bool) preg_match($preg, $truename);
}

 

# 方法三
#
正则判定昵称 中文 英文 数字 下划线 function isNickName($str) { if (preg_match("/[\x{4e00}-\x{9fa5}\w]+$/u", $str)) { return true; } return false; } # 正则判定密码 限制六道二十位之间 数字字母 下划线 function isCardSn($str) { if (preg_match('/^[_0-9a-z]{6,20}$/i',$str)) { return true; } return false; } # 正则判定支付密码 限制六位数字 function isPayWord($str) { if (preg_match('/^\d{6}$/',$str)) { return true; } return false; }

 

2020年08月27日

方法持续更新中...

 

posted @ 2020-08-27 11:25  御风琊穹  阅读(330)  评论(0编辑  收藏  举报

春风十里,我喜欢你。可是你喜欢的人不喜欢你,哈哈....
人来人往,莫失莫忘。最终还是选择淡忘于回忆之中...
落日余晖,待你而归。但你终究不是为我而归..
一米阳光,温暖安放;心若向阳,无谓悲伤;轻安喜乐,次第花开 。