php中常用正则表达式验证

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