php各种验证类
<?php
/**
* 验证类
*
*/
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各种验证类的更多相关文章
- JavaScript 数据验证类
JavaScript 数据验证类 /* JavaScript:验证类 author:杨波 date:20160323 1.用户名验证 2.密码验证 3.重复密码验证 4.邮箱验证 5.手机号验证 6. ...
- C# 通用验证类 支持 WPF,MVC,Winform
验证方式, 通过继承 IDataErrorInfo接口 和 DataAnnotations 解释标记语言而实现, 为了能在WPF上通用,所了也要继承属性更改通知接口INotifyPropertyC ...
- C# - DataValid数据验证类
从EasyCode 摘取下来的数据验证类 using System; using System.Collections.Generic; using System.Text; namespace Le ...
- php表单数据验证类
非常好用方便的表单数据验证类 <?php //验证类 class Fun{ function isEmpty($val) { if (!is_string($val)) return false ...
- C# System.Attribute(验证类)
本文以一个项目中通用的验证类来举例说明如何使用自定义Attribute来扩展元数据. 在项目中,我们为了保证各个层次之间的松藕合,通常把在各个层次之间传递数据的封装在一个称为实体类的类中,比如Act ...
- JS表单验证类HTML代码实例
以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮 ...
- 一个PHP常用表单验证类(基于正则)
一个基于正则表达式的PHP常用表单验证类,作者:欣然随风.这个表单判断类的功能有:验证是否为指定长度的字母/数字组合.验证是否为指定长度汉字.身 份证号码验证.是否是指定长度的数字.验证邮件地址.电话 ...
- PHP - 验证类
<?php /** * 验证类 * * @lastmodify 2014-5-16 * @author jy625 */ class VerifyAction{ /** * 是否为空值 */ p ...
- 做一个牛XX的身份证号验证类(支持15位和18位)
原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...
- java 数据格式验证类
作为一个前端,懂一点java,php之类的,甚好. 我所在的项目前端采用的就是java的spring mvc框架,所以我们也写java,掐指一算,也快一年了. 前端而言,验证是一个坎,绕不过去的,前面 ...
随机推荐
- Cocos2d-x 3.2 之 别踩白块(第三篇)
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- thrift实例
Thrift实例 Apache thrift是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架. 它采用接口描述语言定义并创建服务,支持可扩展的跨语言服务开发,所包含的代码生 ...
- Boxes and Candies(贪心)
Boxes and Candies Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement Ther ...
- 九度OJ 1208:10进制 VS 2进制 (进制转换)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2040 解决:612 题目描述: 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数. ...
- 学院名单-211院校研招学院-中国教育在线(www.eol.cn)170915164402
[数据结果] 学校数.学院数:112,2657. [数据来源] 中国教育在线(www.eol.cn)211院校研招学院. http://www.eol.cn/html/ky/gxmd/211.shtm ...
- Android系统移植与调试之------->如何修改Android设备的桌面背景图片
1.切换到~/mx0831-0525/device/other/TBDG1073/overlay/frameworks/base/core/res/res目录 2.准备好一张相应尺寸的图片并且命名为d ...
- spring AOP操作
在spring进行AOP操作,使用aspectj实现 一.aspectj准备 aspectj不是spring的一部分,和spring一起使用进行AOP的操作 1.除了spring基本的jar包还需要导 ...
- python基础20 -------python中的异常处理
一.python程序中的会出现的错误. 1.语法错误:这种错误根本过不了python解释器的语法检测阶段,必须在程序执行之前进行改正. 2.逻辑错误:这种错误虽然过了语法检测阶段但是程序在执行的过程中 ...
- 文件传输协议FTP
之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP).阅读Usenet新闻组(NNTP).电子邮件发送(SMTP).从服务器上下载电子邮件(POP3.IMAP)等 ...
- putty screen
http://www.cnblogs.com/xupeizhi/archive/2013/05/20/3088779.html screen 会创建一个跑着shell的单一窗口 Ctrl+a d退出刚 ...