字符串类型验证

/** * 字符串类型验证 * @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;}

]]>

原创文章,作者:键盘游走者,如若转载,请注明出处:http://www.708034.com/2017/08/%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%b1%bb%e5%9e%8b%e9%aa%8c%e8%af%81/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注