123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <?php
- /**
- * @copyright Copyright(c) 2010 aircheng.com
- * @file
- * @brief 系统统验证类文件
- * @author webning
- * @date 2010-12-02
- * @version 0.6
- * @note
- */
- /**
- * @brief 系统统验证类文件
- * @class IValidate
- */
- class IValidate
- {
- /**
- * @brief Email格式验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function email($str='')
- {
- return (bool)preg_match('/^\w+([-+.]\w+)*@\w+([-.]\w+)+$/i',$str);
- }
- /**
- * @brief QQ号码验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function qq($str='')
- {
- return (bool)preg_match('/^[1-9][0-9]{4,}$/i',$str);
- }
- /**
- * @brief 身份证验证包括一二代身份证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function id($str='')
- {
- return (bool)preg_match('/^\d{15}(\d{2}[0-9x])?$/i',$str);
- }
- /**
- * @brief 此IP验证只是对IPV4进行验证。
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- * @note IPV6暂时不支持。
- */
- public static function ip($str='')
- {
- return (bool)preg_match('/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/i',$str);
- }
- /**
- * @brief 邮政编码验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- * @note 此邮编验证只适合中国
- */
- public static function zip($str='')
- {
- return (bool)preg_match('/^\d{6}$/i',$str);
- }
- /**
- * @brief 验证字符串的长度,和数值的大小。$str 为字符串时,判定长度是否在给定的$min到$max之间的长度,为数值时,判定数值是否在给定的区间内。
- * @param mixed $str 要验证的内容
- * @param int $min 最小值或最小长度
- * @param int $max 最大值或最大长度
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function len($str, $min, $max)
- {
- if(is_int($str)) return $str >= $min && $str <= $max;
- if(is_string($str))return IString::getStrLen($str) >= $min && IString::getStrLen($str) <= $max;
- return false;
- }
- /**
- * @brief 电话号码验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function phone($str='')
- {
- return (bool)preg_match('/^((\d{3,4})|\d{3,4}-)?\d{3,8}(-\d+)*$/i',$str);
- }
- /**
- * @brief 手机号码验证
- * @param string $str
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function mobi($str='')
- {
- return (bool)preg_match("!^1[3|4|5|7|8][0-9]\d{4,8}$!",$str);
- }
- /**
- * @brief Url地址验证
- * @param string $str 要检测的Url地址字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function url($str='')
- {
- return (bool)preg_match('/^[a-zA-z]+:\/\/(\w+(-\w+)*)(\.(\w+(-\w+)*))+(\/?\S*)?$/i',$str);
- }
- /**
- * @brief 正则验证接口
- * @param mixed $reg 正则表达式
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function check($reg, $str='')
- {
- return (bool)preg_match('/^'.$reg.'$/i',$str);
- }
- /**
- * @brief 判断字符串是否为空
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function required($str)
- {
- return (bool)preg_match('/\S+/i',$str);
- }
- /**
- * @brief 百分比数字
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function percent($str)
- {
- return (bool)preg_match('/^[1-9][0-9]*$/',$str);
- }
- /**
- * @brief 用户名
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function name($str,$minlen=2, $maxlen=20)
- {
- return (bool)preg_match("!^[\w\x{4e00}-\x{9fa5}]{".$minlen.",".$maxlen."}$!u",$str);
- }
- /**
- * @brief 文件名或者文件路径
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function filename($str)
- {
- //禁止跨越目录
- if(strpos($str,"..") !== false)
- {
- return false;
- }
- return (bool)preg_match("%^[\w\./:/!]+$%",$str);
- }
- /**
- * @brief 常用检索过滤
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function strict($str)
- {
- return (bool)preg_match("|^[\w\.\,\-<>=\!\x{4e00}-\x{9fa5}\s*]+$|u",$str);
- }
- /**
- * add by Scott Chen on 2017-11-03
- * @brief 身份证18位格式验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function id_ex_18($str='')
- {
- return (bool)preg_match('/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/i',$str);
- }
- /**
- * add by Scott Chen on 2017-11-03
- * @brief 身份证15位格式验证
- * @param string $str 需要验证的字符串
- * @return bool 验证通过返回 true 不通过返回 false
- */
- public static function id_ex_15($str='')
- {
- return (bool)preg_match('/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/i',$str);
- }
- }
|