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

字号+ 作者:alpha 来源:www.seoalphas.com 2017-09-14 08:24 浏览次数(411)

开发过程中数据验证是一项必不可少的工作,通过验证我们能够有效的规范用户输入的内容及避免恶意插入内容来破坏我们的数据结构,这里整理部分常用的验证封装成类

开发过程中数据验证是一项必不可少的工作,通过验证我们能够有效的规范用户输入的内容及避免恶意插入内容来破坏我们的数据结构,这里整理部分常用的验证封装成类,当然你也可以拿出单个的验证方法来完成自己的需求。

/**
* 常用的正则表达式来验证信息.如:网址 邮箱 手机号等
*/
class check {
   /**
    * 正则表达式验证email格式
    * @param string $str    所要验证的邮箱地址
    * @return boolean
    */
   public static function isEmail($str) {
       if (!$str) {
           return false;
       }
       return preg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is', $str) ? true : false;
   }
   /**
    * 正则表达式验证网址
    * @param string $str    所要验证的网址
    * @return boolean
    */
   public static function isUrl($str) {
       if (!$str) {
           return false;
       }
       return preg_match('#(http|https|ftp|ftps)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?#i', $str) ? true : false;
   }
   /**
    * 验证字符串中是否含有汉字
    * @param integer $string    所要验证的字符串。注:字符串编码仅支持UTF-8
    * @return boolean
    */
   public static function isChineseCharacter($string) {
       if (!$string) {
           return false;
       }
       return preg_match('~[\x{4e00}-\x{9fa5}]+~u', $string) ? true : false;
   }
   /**
    * 验证字符串中是否含有非法字符
    * @param string $string    待验证的字符串
    * @return boolean
    */
   public static function isInvalidStr($string) {
       if (!$string) {
           return false;
       }
       return preg_match('#[!#$%^&*(){}~`"\';:?+=<>/\[\]]+#', $string) ? true : false;
   }
   /**
    * 用正则表达式验证邮证编码
    * @param integer $num    所要验证的邮政编码
    * @return boolean
    */
   public static function isPostNum($num) {
       if (!$num) {
           return false;
       }
       return preg_match('#^[1-9][0-9]{5}$#', $num) ? true : false;
   }
   /**
    * 正则表达式验证身份证号码
    * @param integer $num    所要验证的身份证号码
    * @return boolean
    */
   public static function isPersonalCard($num) {
       if (!$num) {
           return false;
       }
       return preg_match('#^[\d]{15}$|^[\d]{18}$#', $num) ? true : false;
   }
   /**
    * 正则表达式验证IP地址, 注:仅限IPv4
    * @param string $str    所要验证的IP地址
    * @return boolean
    */
   public static function isIp($str) {
       if (!$str) {
           return false;
       }
       if (!preg_match('#^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$#', $str)) {
           return false;
       }
       $ipArray = explode('.', $str);
       //真实的ip地址每个数字不能大于255(0-255)
       return ($ipArray[0]<=255 && $ipArray[1]<=255 && $ipArray[2]<=255 && $ipArray[3]<=255) ? true : false;
   }
   /**
    * 用正则表达式验证出版物的ISBN号
    * @param integer $str    所要验证的ISBN号,通常是由13位数字构成
    * @return boolean
    */
   public static function isBookIsbn($str) {
       if (!$str) {
           return false;
       }
       return preg_match('#^978[\d]{10}$|^978-[\d]{10}$#', $str) ? true : false;
   }
   /**
    * 用正则表达式验证手机号码(中国大陆区)
    * @param integer $num    所要验证的手机号
    * @return boolean
    */
   public static function isMobile($num) {
       if (!$num) {
           return false;
       }
       return preg_match('#^13[\d]{9}$|14^[0-9]\d{8}|^15[0-9]\d{8}$|^18[0-9]\d{8}$#', $num) ? true : false;
   }
   /**
    * 检查字符串是否为空
    * @access public
    * @param string $string 字符串内容
    * @return boolean
    */
   public static function isMust($string = null) {
       //参数分析
       if (is_null($string)) {
           return false;
       }
       return empty($string) ? false : true;
   }
   /**
    * 检查字符串长度
    * @access public
    * @param string $string 字符串内容
    * @param integer $min 最小的字符串数
    * @param integer $max 最大的字符串数
    */
   public static function isLength($string = null, $min = 0, $max = 255) {
       //参数分析
       if (is_null($string)) {
           return false;
       }
       //获取字符串长度
       $length = strlen(trim($string));
       return (($length >= (int)$min) && ($length <= (int)$max)) ? true : false;
   }
}


标签
正则

本站部分技术文章为参考网上实用内容发布,目的是记录踩坑经验,若未备注来源而侵犯了您原创文章权益,请联系博主删除;对文章有不同看法的朋友欢迎在评论区留言互动

相关文章
  • 总结php删除html标签和标签内的内容的方法

    总结php删除html标签和标签内的内容的方法

    浏览次数:523

网友点评
功能开发中......其实是博主懒了而已......
0.609375s