常用的正则表达式来验证信息.如:网址 邮箱 手机号等

来源:互联网 发布:2016nba西决数据统计 编辑:程序博客网 时间:2024/06/01 03:59
  1. <?php
  2.  /**
  3.  * 常用的正则表达式来验证信息.如:网址 邮箱 手机号等
  4.  */
  5.  class check {
  6.     /**
  7.      * 正则表达式验证email格式
  8.      *
  9.      * @param string $str    所要验证的邮箱地址
  10.      * @return boolean
  11.      */
  12.     public static function isEmail($str) {
  13.         if (!$str) {
  14.             return false;
  15.         }
  16.         return preg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is', $str) ? true : false;
  17.     }
  18.     /**
  19.      * 正则表达式验证网址
  20.      *
  21.      * @param string $str    所要验证的网址
  22.      * @return boolean
  23.      */
  24.     public static function isUrl($str) {
  25.         if (!$str) {
  26.             return false;
  27.         }
  28.         return preg_match('#(http|https|ftp|ftps)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?#i', $str) ? true : false;
  29.     }
  30.     /**
  31.      * 验证字符串中是否含有汉字
  32.      *
  33.      * @param integer $string    所要验证的字符串。注:字符串编码仅支持UTF-8
  34.      * @return boolean
  35.      */
  36.     public static function isChineseCharacter($string) {
  37.         if (!$string) {
  38.             return false;
  39.         }
  40.         return preg_match('~[\x{4e00}-\x{9fa5}]+~u', $string) ? true : false;
  41.     }
  42.     /**
  43.      * 验证字符串中是否含有非法字符
  44.      *
  45.      * @param string $string    待验证的字符串
  46.      * @return boolean
  47.      */
  48.     public static function isInvalidStr($string) {
  49.         if (!$string) {
  50.             return false;
  51.         }
  52.         return preg_match('#[!#$%^&*(){}~`"\';:?+=<>/\[\]]+#', $string) ? true : false;
  53.     }
  54.     /**
  55.      * 用正则表达式验证邮证编码
  56.      *
  57.      * @param integer $num    所要验证的邮政编码
  58.      * @return boolean
  59.      */
  60.     public static function isPostNum($num) {
  61.         if (!$num) {
  62.             return false;
  63.         }
  64.         return preg_match('#^[1-9][0-9]{5}$#', $num) ? true : false;
  65.     }
  66.     /**
  67.      * 正则表达式验证身份证号码
  68.      *
  69.      * @param integer $num    所要验证的身份证号码
  70.      * @return boolean
  71.      */
  72.     public static function isPersonalCard($num) {
  73.         if (!$num) {
  74.             return false;
  75.         }
  76.         return preg_match('#^[\d]{15}$|^[\d]{18}$#', $num) ? true : false;
  77.     }
  78.     /**
  79.      * 正则表达式验证IP地址, 注:仅限IPv4
  80.      *
  81.      * @param string $str    所要验证的IP地址
  82.      * @return boolean
  83.      */
  84.     public static function isIp($str) {
  85.         if (!$str) {
  86.             return false;
  87.         }
  88.         if (!preg_match('#^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $str)) {
  89.             return false;
  90.         }
  91.         $ipArray = explode('.', $str);
  92.         //真实的ip地址每个数字不能大于255(0-255)
  93.         return ($ipArray[0]<=255 && $ipArray[1]<=255 && $ipArray[2]<=255 && $ipArray[3]<=255) ? true : false;
  94.     }
  95.     /**
  96.      * 用正则表达式验证出版物的ISBN号
  97.      *
  98.      * @param integer $str    所要验证的ISBN号,通常是由13位数字构成
  99.      * @return boolean
  100.      */
  101.     public static function isBookIsbn($str) {
  102.         if (!$str) {
  103.             return false;
  104.         }
  105.         return preg_match('#^978[\d]{10}$|^978-[\d]{10}$#', $str) ? true : false;
  106.     }
  107.     /**
  108.      * 用正则表达式验证手机号码(中国大陆区)
  109.      * @param integer $num    所要验证的手机号
  110.      * @return boolean
  111.      */
  112.     public static function isMobile($num) {
  113.         if (!$num) {
  114.             return false;
  115.         }
  116.         return preg_match('#^13[\d]{9}$|14^[0-9]\d{8}|^15[0-9]\d{8}$|^18[0-9]\d{8}$#', $num) ? true : false;
  117.     }
  118.     /**
  119.      * 检查字符串是否为空
  120.      *
  121.      * @access public
  122.      * @param string $string 字符串内容
  123.      * @return boolean
  124.      */
  125.     public static function isMust($string = null) {
  126.         //参数分析
  127.         if (is_null($string)) {
  128.             return false;
  129.         }
  130.         return empty($string) ? false : true;
  131.     }
  132.     /**
  133.      * 检查字符串长度
  134.      *
  135.      * @access public
  136.      * @param string $string 字符串内容
  137.      * @param integer $min 最小的字符串数
  138.      * @param integer $max 最大的字符串数
  139.      */
  140.     public static function isLength($string = null, $min = 0, $max = 255) {
  141.         //参数分析
  142.         if (is_null($string)) {
  143.             return false;
  144.         }
  145.         //获取字符串长度
  146.         $length = strlen(trim($string));
  147.         return (($length >= (int)$min) && ($length <= (int)$max)) ? true : false;
  148.     }
  149.  }
0 0