/**
* 字符串类型验证
* @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;
}
]]>
字符串类型验证:等您坐沙发呢!