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 ...
随机推荐
- HTML5<header>元素
HTML5<header>元素 1.header元素描述了文档的头部区域,主要用于定义内容的介绍展示区域. 2.实例: <header> <h2>heder元素描述 ...
- 科技庄园(背包dp)---对于蒟蒻来说死了一大片的奇题
题目描述: Life种了一块田,里面种了一些桃树. Life对PFT说:“我给你一定的时间去摘桃,你必须在规定的时间之内回到我面前,否则你摘的桃都要归我吃!” PFT思考了一会,最终答应了! 由于PF ...
- python入门:最基本的用户登录
#! usr/bin/env python # -*- coding: utf-8 -*- #最基本的用户登录 import getpass usre = input("username:& ...
- 【Redis】DENIED Redis is running in protected mode
.修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 .修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 &g ...
- 【php】php安全问题
使用 —enable-force-cgi-redirect 选项 设置 doc_root 或 user_dir 或 open_basedir PHP运行的用户身份不能为ROOT 数据库字段加密 程序不 ...
- 使用IAR在开发nordic问题记录
使用IAR在开发nordic的sdk的时候,官方有一段话*****Note for IAR 8 users:(Libraries for IAR 8 require wchar_t to be of ...
- 线段树:CDOJ1591-An easy problem A (RMQ算法和最简单的线段树模板)
An easy problem A Time Limit: 1000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Pr ...
- windows下创建子进程过程中代码重复执行问题
windows在启动子进程的时候会将主进程文件倒入到子进程中.导入模块就相当于执行这个模块中的代码, 所以第一个print会在主进程中执行一次,又在被导入的过程中在子进程中又执行了一次. p.star ...
- 《小团团团队》第八次团队作业:Alpha冲刺
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 小团团团队 作业学习目标 (1)掌握软件测试基础技术; (2)学 ...
- 【Jenskins】安装与配置
Jenskins教程:http://www.yiibai.com/jenkins/ 一.Jenskins的安装 1.jenskins下载和启动 Jenskins下载地址:https://jenkins ...