始终坚信
好记性不如赖笔头!

字符串类型验证

/**  * 字符串类型验证  * @param string $s 要验证的字符串数据  * @param  $type 数据类型,当为数组类型的时候,判断是否包含其值中  * 0 : 任意字符  * 1 : 数字和字母  * 2 : 数字,无符号  * 3 : 数字组合,逗号分开  * 4 : 数字字母和下划线,中划线会有问题  * 5 : 邮箱验证  * 6 : 网址  * 7 : 完整http图片地址 + 本地  * 8 : 日期+时间 完整类型  * 9 : 日期 类型  * 10: 版本号 1.0.23  * 11: IP地址  * 12: 常数 1.001  * 13: 数字、字符组合,逗号分开  * 14: 颜色值,必须得写上#  * 15: 标准路径 XXX/YYY/  * 18: 日期+时间 完整不带秒  * 22: 数字,有符号  * 23: 第一个字符是字母,后面的由数字、字母和下划线构成  * 24: 数字、字母和中下划线,用在目录验证  * 25: base64_encode转换后的数据  * 带符号的数字组合,逗号分开  * 33: 带符号的数字组合,逗号分开  * 34: 不匹配特殊符号,帐户验证的时候用  * 35: 匹配手机号码  * 36: 匹配电话号码  * default: 自定义正则验证  * @return bool 验证通过返回1,否则false */ function kc_validate($s,$type){    $reg='';    switch($type){       case 1:$reg='/^[a-zA-Z0-9]+$/';break;       case 2:$reg='/^[0-9]+$/';break;       case 3:$reg='/^([0-9]+,)*[0-9]+$/';break;       case 4:$reg='/^[A-Za-z0-9\_]+$/';break;       case 5:          $reg='/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/';break;       case 6:          $reg='/^[a-zA-Z]{3,10}:\/\/[^\s]+$/';          break;       case 7:          $reg='/^([a-zA-Z]{3,10}:\/\/)?[^\s]+\.(jpeg|jpg|gif|png|bmp)$/';          break;       case 8:          $reg='/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/';          break;       case 9:          $reg='/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/';          break;       case 10:$reg='/^\d?\.\d?\.\d{4}$/';break;       case 11:$reg='/^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/';break;       case 12:$reg='/^(\d+(\.\d+)?)$/';break;       case 13:$reg='/^([0-9A-Za-z]+,)*[0-9A-Za-z]+$/';break;       case 14:$reg='/^#?[0-9A-Fa-f]{6}$/';break;       case 15:$reg='/^([a-zA-Z0-9\_\-]+\/)+$/';          $s=preg_replace('/\{([a-zA-Z0-9]+)\}/','$1',$s);//替换{ID}等类型为ID          $path=preg_replace('/(([a-zA-Z0-9\_\-]+\/)*)([a-zA-Z0-9\_\-]+\/)/','$3',$s);          break;       case 17:$reg='/^([a-zA-Z]{3,10}:\/\/)[^\s]+$/';break;       case 18:          $reg='/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\d):[0-5]?\d$/';          break;       case 22:$reg='/^(\-|\+)?[0-9]+$/';break;       case 23:$reg='/^[a-zA-Z][a-zA-Z0-9\_]*/';break;       case 24:$reg='/^([a-zA-Z0-9\-_]+\/)+$/';break;       case 25:$reg='/[a-zA-Z0-9\+\%]+(\=)*$/';break;       case 33:$reg='/^(\-?[0-9]+\,?)+$/';break;       case 34:$reg=”/^[^\s!-\/:-@\[-`\{-~]+$/”;break;       case 35:$reg=”/^1[3-5,8]{1}[0-9]{9}$/”;break;       case 36:$reg=”/^([0-9]{3,4}-)?[0-9]{7,8}$/”;break;       default:$reg=$type;break;    }    //如果为数组类型    if (is_array($reg)) {       $bool=in_array($s,$reg);    }else{       $bool= empty($type)          ? true          : (empty($reg) ? false : (bool)preg_match($reg,$s));    }    return $bool; }

]]>

赞(0)
本站未标注原创文章均为转载,如有侵权请告知!二宝博客 » 字符串类型验证

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址