TP5常用验证规则记录,持续更新……

 /**
     * 验证是否为int
     * @ $value id 值
     * @ $field 字段名
     */
    protected function isInt($value , $rule = '' , $date = '' , $field  = '')
    {
        if(is_numeric($value) && is_int($value + 0) && ($value + 0) > 0)
        {
            return true;
        }else{
            return $field . '必须是正整数';
        }
    }

	 public function checkIDs($value)
	    {
	        $value = explode(',',$value);
	        foreach($value as $v)
	        {
	            if(empty($v))
	            {
	                return false;
	            }
	            if(!$this->isInt($v))
	            {
	                return false;
	            }
	        }
	        return true;
	    }

	/**
     * 手机号验证
     */
 protected function isMobile($value, $rule = '' , $date = '' , $field  = '')
    {
        $rule = '^1(3|4|5|6|7|8)[0-9]\d{8}$^';
        $result = preg_match($rule, $value);
        if ($result) {
            return true;
        } else {
            return $field.'手机号格式错误';
        }
    }
 /**
     * 验证密码至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符
     */
    protected function isPassword($value , $rule = '' , $date = '' , $field  = '')
    {
        $rule='/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/';
        if(!preg_match($rule,$value))
        {
            return false;
        }
        return true;
    }
/**
     * 验证身份证号
     * @param string    $idcard 身份证号码
     * @return boolean
     */
	function checkIdentfy($idcard){ // 
		if(strlen($idcard)!=18){
			return false;
		}
		// 取出本体码
		$idcard_base = substr($idcard, 0, 17);
		// 取出校验码
		$verify_code = substr($idcard, 17, 1);
		// 加权因子
		$factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
		// 校验码对应值
		$verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
		// 根据前17位计算校验码
		$total = 0;
		for($i=0; $i<17; $i++){
			$total += substr($idcard_base, $i, 1)*$factor[$i];
		}
		// 取模
		$mod = $total % 11;
		// 比较校验码
		if($verify_code == $verify_code_list[$mod]){
			return true;
		}else{
			return false;
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值