function v_reg($str, $format)
{
switch ($format) {
case "date":
$_reg = "/^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][0-9]))|((0?[469]|11)-(0[1-9]|[1-2][0-9]|30)))\$/";
//日期
break;
case "time":
$_reg = "/^(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])(:([0-5][0-9]))?\$/";
break;
case "datetime":
//日期时间
$_reg = "/^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][0-9]))|((0?[469]|11)-(0[1-9]|[1-2][0-9]|30)))\\s(([1-9]{1})|([0-1][0-9])|([1-2][0-3])):([0-5][0-9])(:([0-5][0-9]))?\$/";
break;
case "int":
$_reg = "/^(\\+|-)?\\d*\$/";
//整数
break;
case "digit":
$_reg = "/^(\\+|-)?\\d*(\\.\\d+)*\$/";
//数值,可以包含小数点
break;
case "email":
$_reg = "/^\\w+(-\\w+)*(\\.\\w+(-\\w+)*)*@\\w+(\\.\\w+)+\$/";
//Email
break;
case "url":
$_reg = "/^(http|ftp)s?:\\/\\/\\w+(-\\w+)*(\\.\\w+(-\\w+)*)+(/\\w+(-\\w+)*)*(\\.\\w+)*\\??(&?\\w+=\\w+)*(/\\w+(-\\w+)*)*\$/";
//URL地址
break;
case "alphabetDigit":
$_reg = "/^[a-zA-Z\\d]*\$/";
//数字英文字母
break;
case "strDigit":
$_reg = "/^[\\x{4e00}-\\x{9fa5}a-zA-Z\\d-_]*\$/u";
// "/^[\\\u4e00-\\\u9fa5|\\\uf900-\\\ufa2d|\w]*$/" 中文字母数字下划线连字符
break;
case "alias":
$_reg = "/^[a-zA-Z\\d-_]*\$/";
// "/^[\\\u4e00-\\\u9fa5|\\\uf900-\\\ufa2d|\w]*$/" 字母数字下划线连字符
break;
default:
$_reg = "";
//默认
break;
}
if ($str && $format != "text") {
//如果值不为空,且格式不为text则验证
if (preg_match($_reg, $str)) {
return true;
//验证通过,返回正确
} else {
return false;
//验证失败,返回错误
}
} else {
return true;
//如果为text,直接返回正确
}
}