php validator classes
<?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的更多相关文章
- 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 ...
- wx
wx The classes in this module are the most commonly used classes for wxPython, which is why they hav ...
- [转]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 ...
- rails提供的validators
Instance Public methods attribute_method?(attribute)Link Returns true if attribute is an attribute m ...
- yii 核心类classes.php详解(持续更新中...)
classes.php在yii运行的时候将被自动加载,位于yii2文件夹底下. <?php /** * Yii core class map. * * This file is automati ...
- jQuery.validator 详解二
前言:上一篇详细的介绍了jQuery.validator( 版本v1.13.0 )的验证规则,这一篇重点讲述它的源码结构,及如何来对元素进行验证,错误消息提示的内部实现 一.插件结构(组织方式) 在讲 ...
- jQuery.validator 详解
jQuery.validator 详解二 前言:上一篇详细的介绍了jQuery.validator( 版本v1.13.0 )的验证规则,这一篇重点讲述它的源码结构,及如何来对元素进行验证,错误消息提示 ...
- 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 ...
- jQuery validator plugin之Plugin Method
原文 .validate() validate( [options ] ) options Type: Object debug (default: false) Type: Boolean Enab ...
随机推荐
- 理解AttributeUsage类
类定义: // 摘要: // 指定另一特性类的用法. 此类不能被继承. [Serializable] [AttributeUsage(AttributeTargets.Class, Inherited ...
- mac 使用homebrew 安装mysql
1. 安装homebrew ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" brew update ...
- 【线段树分治 线性基】luoguP3733 [HAOI2017]八纵八横
不知道为什么bzoj没有HAOI2017 题目描述 Anihc国有n个城市,这n个城市从1~n编号,1号城市为首都.城市间初始时有m条高速公路,每条高速公路都有一个非负整数的经济影响因子,每条高速公路 ...
- Unity基础-图形渲染
图形渲染-Camera Camera下的Clear Flags:Skybox,Don't Clear,Depth only(深度),Solid Color(固定颜色) Culling Mask:渲染层 ...
- kali添加更新源
/etc/apt/sources.list 具体方法参考: http://blog.csdn.net/gmnet/article/details/14471835 http://blog.sina.c ...
- MySQL如何复制一个表
MySQL如何复制一个表 1 复制 employee 表 => employee2 () create table employee2 like employee () insert into ...
- 科学计算库Numpy——概述
Numpy主要用于数组的各种计算. 导入Numpy import numpy as np 数组类型 Numpy的数组类型为numpy.ndarray. array=np.array([1,2,3,4, ...
- Python学习笔记:面向对象(类)
1.类定义:Python3中,如果新建的类没有继承任何其他类,默认继承基础类object.Python2中如果没有显式继承object类就是经典类,而显式继承了object类就是新式类,Python2 ...
- 数字pid笔记(1)
针对stm32中可以如下实现: p->IncrementVal = (p->Kp * (p->err - p->err_next)) + (p->Ki * p->e ...
- Erasing and Winning UVA - 11491 贪心
题目:题目链接 思路:不难发现,要使整体尽量大,应先满足高位尽量大,按这个思路优先满足高位即可 AC代码: #include <iostream> #include <cstdio& ...