<?php

/**
* 验证类
*/
class Validator {
/*
函数名称:isNumber
简要描述:检查输入的是否为数字
输入:string
输出:boolean
*/ public static function isNumber($val) {
if (ereg("^[0-9]+$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isPhone
* 简要描述:检查输入的是否为电话
* 输入:string
* 输出:boolean
*/ public static function isPhone($val) {
//eg: xxx-xxxxxxxx-xxx | xxxx-xxxxxxx-xxx ...
if (ereg("^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isMobile
* 简要描述:检查输入的是否为手机号
* 输入:string
* 输出:boolean
*/ public static function isMobile($val) {
//该表达式可以验证那些不小心把连接符“-”写出“-”的或者下划线“_”的等等
if (ereg("(^(\d{2,4}[-_-—]?)?\d{3,8}([-_-—]?\d{3,8})?([-_-—]?\d{1,7})?$)|(^0?1[35]\d{9}$)", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isPostcode
* 简要描述:检查输入的是否为邮编
* 输入:string
* 输出:boolean
*/ public static function isPostcode($val) {
if (ereg("^[0-9]{4,6}$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isEmail
* 简要描述:邮箱地址合法性检查
* 输入:string
* 输出:boolean
*/ public static function isEmail($val, $domain = "") {
if (!$domain) {
if (preg_match("/^[a-z0-9-_.]+@[\da-z][\.\w-]+\.[a-z]{2,4}$/i", $val)) {
return TRUE;
} else
return FALSE;
}
else {
if (preg_match("/^[a-z0-9-_.]+@" . $domain . "$/i", $val)) {
return TRUE;
} else
return FALSE;
}
} //end func /*
* 函数名称:isName
* 简要描述:姓名昵称合法性检查,只能输入中文英文
* 输入:string
* 输出:boolean
*/ public static function isName($val) {
if (preg_match("/^[\x80-\xffa-zA-Z0-9]{3,60}$/", $val)) {//2008-7-24
return TRUE;
}
return FALSE;
} //end func /*
* 函数名称:isDomain($Domain)
* 简要描述:检查一个(英文)域名是否合法
* 输入:string 域名
* 输出:boolean
*/ public static function isDomain($Domain) {
if (!eregi("^[0-9a-z]+[0-9a-z\.-]+[0-9a-z]+$", $Domain)) {
return FALSE;
}
if (!eregi("\.", $Domain)) {
return FALSE;
} if (eregi("\-\.", $Domain) or eregi("\-\-", $Domain) or eregi("\.\.", $Domain) or eregi("\.\-", $Domain)) {
return FALSE;
} $aDomain = explode(".", $Domain);
if (!eregi("[a-zA-Z]", $aDomain[count($aDomain) - 1])) {
return FALSE;
} if (strlen($aDomain[0]) > 63 || strlen($aDomain[0]) < 1) {
return FALSE;
}
return TRUE;
} /*
* 函数名称:isNumberLength($theelement, $min, $max)
* 简要描述:检查字符串长度是否符合要求
* 输入:mixed (字符串,最小长度,最大长度)
* 输出:boolean
*/ public static function isNumLength($val, $min, $max) {
$theelement = trim($val);
if (ereg("^[0-9]{" . $min . "," . $max . "}$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isNumberLength($theelement, $min, $max)
* 简要描述:检查字符串长度是否符合要求
* 输入:mixed (字符串,最小长度,最大长度)
* 输出:boolean
*/ public static function isEngLength($val, $min, $max) {
$theelement = trim($val);
if (ereg("^[a-zA-Z]{" . $min . "," . $max . "}$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isEnglish
* 简要描述:检查输入是否为英文
* 输入:string
* 输出:boolean
*/ public static function isEnglish($theelement) {
if (ereg("[\x80-\xff].", $theelement)) {
return FALSE;
}
return TRUE;
} /*
* 函数名称:isChinese
* 简要描述:检查是否输入为汉字
* 输入:string
* 输出:boolean
*/ public static function isChinese($sInBuf) {
$iLen = strlen($sInBuf);
for ($i = 0; $i < $iLen; $i++) {
if (ord($sInBuf{$i}) >= 0x80) {
if ((ord($sInBuf{$i}) >= 0x81 && ord($sInBuf{$i}) <= 0xFE) && ((ord($sInBuf{$i + 1}) >= 0x40 && ord($sInBuf{$i + 1}) < 0x7E) || (ord($sInBuf{$i + 1}) > 0x7E && ord($sInBuf{$i + 1}) <= 0xFE))) {
if (ord($sInBuf{$i}) > 0xA0 && ord($sInBuf{$i}) < 0xAA) {
//有中文标点
return FALSE;
}
} else {
//有日文或其它文字
return FALSE;
}
$i++;
} else {
return FALSE;
}
}
return TRUE;
} /*
* 函数名称:isDate
* 简要描述:检查日期是否符合0000-00-00
* 输入:string
* 输出:boolean
*/ public static function isDate($sDate) {
if (ereg("^[0-9]{4}\-[][0-9]{2}\-[0-9]{2}$", $sDate)) {
return TRUE;
} else {
return FALSE;
}
} /*
* 函数名称:isTime
* 简要描述:检查日期是否符合0000-00-00 00:00:00
* 输入:string
* 输出:boolean
*/ public static function isTime($sTime) {
if (ereg("^[0-9]{4}\-[][0-9]{2}\-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$", $sTime)) {
return TRUE;
} else {
return FALSE;
}
} /*
* 函数名称:isMoney($val)
* 简要描述:检查输入值是否为合法人民币格式
* 输入:string
* 输出:boolean
*/ public static function isMoney($val) {
if (ereg("^[0-9]{1,}$", $val))
return TRUE;
if (ereg("^[0-9]{1,}\.[0-9]{1,2}$", $val))
return TRUE;
return FALSE;
} /*
* 函数名称:isIp($val)
* 简要描述:检查输入IP是否符合要求
* 输入:string
* 输出:boolean
*/ public static function isIp($val) {
return (bool) ip2long($val);
} }

  

<?php
/**
* 验证类
*
* @lastmodify 2014-5-16
* @author jy625
*/
class VerifyAction{
/**
* 是否为空值
*/
public static function isEmpty($str){
$str = trim($str);
return !empty($str) ? true : false;
}
/**
* 数字验证
* param:$flag : int是否是整数,float是否是浮点型
*/
public static function isNum($str,$flag = 'float'){
if(!self::isEmpty($str)) return false;
if(strtolower($flag) == 'int'){
return ((string)(int)$str === (string)$str) ? true : false;
}else{
return ((string)(float)$str === (string)$str) ? true : false;
}
}
/**
* 名称匹配,如用户名,目录名等
* @param:string $str 要匹配的字符串
* @param:$chinese 是否支持中文,默认支持,如果是匹配文件名,建议关闭此项(false)
* @param:$charset 编码(默认utf-8,支持gb2312)
*/
public static function isName($str,$chinese = true,$charset = 'utf-8'){
if(!self::isEmpty($str)) return false;
if($chinese){
$match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_-]+$/" : "/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u";
}else{
$match = '/^[A-za-z0-9_-]+$/';
}
return preg_match($match,$str) ? true : false;
}
/**
* 邮箱验证
*/
public static function isEmail($str){
if(!self::isEmpty($str)) return false;
return preg_match("/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i",$str) ? true : false;
}
//手机号码验证
public static function isMobile($str){
$exp = "/^13[0-9]{1}[0-9]{8}$|15[012356789]{1}[0-9]{8}$|18[012356789]{1}[0-9]{8}$|14[57]{1}[0-9]$/";
if(preg_match($exp,$str)){
return true;
}else{
return false;
}
}
/**
* URL验证,纯网址格式,不支持IP验证
*/
public static function isUrl($str){
if(!self::isEmpty($str)) return false;
return preg_match('#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-./?%&=]*)?#i',$str) ? true : false;
}
/**
* 验证中文
* @param:string $str 要匹配的字符串
* @param:$charset 编码(默认utf-8,支持gb2312)
*/
public static function isChinese($str,$charset = 'utf-8'){
if(!self::isEmpty($str)) return false;
$match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."]+$/"
: "/^[x{4e00}-x{9fa5}]+$/u";
return preg_match($match,$str) ? true : false;
}
/**
* UTF-8验证
*/
public static function isUtf8($str){
if(!self::isEmpty($str)) return false;
return (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word)
== true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word)
== true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word)
== true) ? true : false;
}
/**
* 验证长度
* @param: string $str
* @param: int $type(方式,默认min <= $str <= max)
* @param: int $min,最小值;$max,最大值;
* @param: string $charset 字符
*/
public static function length($str,$type=3,$min=0,$max=0,$charset = 'utf-8'){
if(!self::isEmpty($str)) return false;
$len = mb_strlen($str,$charset);
switch($type){
case 1: //只匹配最小值
return ($len >= $min) ? true : false;
break;
case 2: //只匹配最大值
return ($max >= $len) ? true : false;
break;
default: //min <= $str <= max
return (($min <= $len) && ($len <= $max)) ? true : false;
}
}
/**
* 验证密码
* @param string $value
* @param int $length
* @return boolean
*/
public static function isPWD($value,$minLen=6,$maxLen=16){
$match='/^[\\~!@#$%^&*()-_=+|{}\[\],.?\/:;\'\"\d\w]{'.$minLen.','.$maxLen.'}$/';
$v = trim($value);
if(empty($v))
return false;
return preg_match($match,$v);
}
/**
* 验证用户名
* @param string $value
* @param int $length
* @return boolean
*/
public static function isNames($value, $minLen=2, $maxLen=16, $charset='ALL'){
if(empty($value))
return false;
switch($charset){
case 'EN': $match = '/^[_\w\d]{'.$minLen.','.$maxLen.'}$/iu';
break;
case 'CN':$match = '/^[_\x{4e00}-\x{9fa5}\d]{'.$minLen.','.$maxLen.'}$/iu';
break;
default:$match = '/^[_\w\d\x{4e00}-\x{9fa5}]{'.$minLen.','.$maxLen.'}$/iu';
}
return preg_match($match,$value);
}
/**
* 验证邮箱
* @param string $value
*/
public static function checkZip($str){
if(strlen($str)!=6){
return false;
}
if(substr($str,0,1)==0){
return false;
}
return true;
}
/**
* 匹配日期
* @param string $value
*/
public static function checkDate($str){
$dateArr = explode("-", $str);
if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
if (($dateArr[0] >= 1000 && $timeArr[0] <= 10000) && ($dateArr[1] >= 0 && $dateArr[1] <= 12) && ($dateArr[2] >= 0 && $dateArr[2] <= 31))
return true;
else
return false;
}
return false;
}
/**
* 匹配时间
* @param string $value
*/
public static function checkTime($str){
$timeArr = explode(":", $str);
if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {
if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))
return true;
else
return false;
}
return false;
}
}

  

php validator classes的更多相关文章

  1. Hibernate Validator 6.0.9.Final - JSR 380 Reference Implementation: Reference Guide

    Preface Validating data is a common task that occurs throughout all application layers, from the pre ...

  2. wx

    wx The classes in this module are the most commonly used classes for wxPython, which is why they hav ...

  3. [转]Supporting OData Query Options in ASP.NET Web API 2

    本文转自:https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/suppor ...

  4. rails提供的validators

    Instance Public methods attribute_method?(attribute)Link Returns true if attribute is an attribute m ...

  5. yii 核心类classes.php详解(持续更新中...)

    classes.php在yii运行的时候将被自动加载,位于yii2文件夹底下. <?php /** * Yii core class map. * * This file is automati ...

  6. jQuery.validator 详解二

    前言:上一篇详细的介绍了jQuery.validator( 版本v1.13.0 )的验证规则,这一篇重点讲述它的源码结构,及如何来对元素进行验证,错误消息提示的内部实现 一.插件结构(组织方式) 在讲 ...

  7. jQuery.validator 详解

    jQuery.validator 详解二 前言:上一篇详细的介绍了jQuery.validator( 版本v1.13.0 )的验证规则,这一篇重点讲述它的源码结构,及如何来对元素进行验证,错误消息提示 ...

  8. spring boot 1.4默认使用 hibernate validator

    spring boot 1.4默认使用 hibernate validator 5.2.4 Final实现校验功能.hibernate validator 5.2.4 Final是JSR 349 Be ...

  9. jQuery validator plugin之Plugin Method

    原文 .validate() validate( [options ] ) options Type: Object debug (default: false) Type: Boolean Enab ...

随机推荐

  1. github:Commit failed - exit code 1 received

    问题 使用github desktop 将项目提交到github,但提示Commit failed - exit code 1 received 开始以为名称过程,把名称改短,但还是失败. 原因 因为 ...

  2. C++ 学习笔记(一) cout 与printf 的不同之处

    作为一个嵌入式开发的猿,使用打印调试程序是必不可少的,拿到新的项目第一件事就是捣鼓打印.这次也不例外有打印才有耍下去的底气.在之前零零碎碎的C++学习中,还是一边学一边做项目的状态下能用printf解 ...

  3. 【bitset 技巧 分块】bzoj5087: polycomp

    神仙zq发现了${n^2\sqrt n}\over 32$做法 Description 你有三个系数为0,1的多项式f(x),g(x),h(x) 求f(g(x)) mod h(x) 为方便起见,将答案 ...

  4. Spring Boot 应用 快速发布到linux服务器的脚本代码示例

    前提说明:spring boot 应用打包成jar包之后要部署到Linux服务器上面运行,我用的nohup java -jar 命令,但是代码更新之后重新部署的时候覆盖原来的项目,又要手动运行ps - ...

  5. jenkins+svn+pipeline+kubernetes部署java应用(二)

    在jenkins中只能通过http的方式获取svn的数据,所以需要配置svn的http访问方式 一.安装http服务端和mod_dav_svn插件 由于Subversion需要版本化的控制,因此标准的 ...

  6. Linux 用户管理切换用户su和提取命令sudo-visudu详解

    一.su --run a shell with substitute user and group IDs -,-l,--login make the shell a login shell, cle ...

  7. OOP之单例模式

  8. set 方法总结整理

    #!/usr/bin/env python __author__ = "lrtao2010" #Python 3.7.0 集合常用方法 #集合是无序的,元素不能重复,元素只能是数字 ...

  9. python 中 * 与**的使用

    1.参数中使用如果是函数定义中参数前的*表示的是将调用时的多个参数放入元组中,**则表示将调用函数时的关键字参数放入一个字典中 如定义以下函数 def func(*args): print(args) ...

  10. poj-3009 curling2.0(搜索)

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26408   Accepted: 10546 Des ...