<?php
/**
 * 数据验证类
 */
class Validate {
  private $value;

  public function __construct($value) {
    $this->value = $value;
  }

  public function val() {
    return $this->value;
  }
  
  /**
   * 是否为空
   * @return boolean [description]
   */
  public function isEmpty() {
    return empty($this->value);
  }
  /**
   * 是否为数字
   * @return boolean [description]
   */
  public function isNumber() {
    return is_numeric($this->value);
  }
  /**
   * 是否为纯汉字
   * @return boolean [description]
   */
  public function isChina($charset = 'utf8') {
    return preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$this->value) ? true : false;
  }
  /**
   * 是否为邮箱
   * @return boolean [description]
   */
  public function isEmail() {
    return preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$this->value) ? true : false;
  }
  /**
   * 是否为手机号
   * @return boolean [description]
   */
  public function isPhone() {
    return preg_match("/^(0|86|17951)?(13[0-9]|15[012356789]|1[78][0-9]|14[57])[0-9]{8}$/",$this->value) ? true : false;
  }
  /**
   * 是否为年份 格式:yyyy
   * @return boolean [description]
   */
  public function isYear() {
    return preg_match("/^(\d{4})$/",$this->value) ? true : false;
  }
  /**
   * 是否为日期时间 格式:yyyy-mm-dd hh:ii:ss
   * @return boolean [description]
   */
  public function isDateTime() {
    return preg_match("/^(\d{4})-(0?\d{1}|1[0-2])-(0?\d{1}|[12]\d{1}|3[01])\s(0\d{1}|1\d{1}|2[0-3]):[0-5]\d{1}:([0-5]\d{1})$/",$this->value) ? true : false;
  }
  /**
   * 是否为网址 
   * @return boolean [description]
   */
  public function isUrl() {
    return preg_match("/\b(([\w-]+:\/\/?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|\/)))/",$this->value) ? true : false;
  }
  /**
   * 是否为身份证
   * @return boolean [description]
   */
  public function isIdCard() {
    return preg_match("/(^\d{15}$)|(^\d{17}([0-9]|X)$)/",$this->value) ? true : false;
  }
  /**
   * 是否为邮编
   * @return boolean [description]
   */
  public function emailCode() {
    return preg_match("/[1-9]\d{5}(?!\d)/",$this->value) ? true : false;
  }

  /**
   * 是否为IPv4
   * @return boolean [description]
   */
  public function isIP4() {
    return preg_match("/^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/",$this->value) ? true : false;
  }
  /**
   * 是否为IPv6
   * @return boolean [description]
   */
  public function isIP6() {
    return preg_match("/^([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}$/",$this->value) ? true : false;
  }

}

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。