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,掐指一算,也快一年了. 前端而言,验证是一个坎,绕不过去的,前面 ...
随机推荐
- 【BZOJ2466】[中山市选2009]树 树形DP
[BZOJ2466][中山市选2009]树 Description 图论中的树为一个无环的无向图.给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了,那么该节点的灯会从熄灭变为点亮(当按 ...
- WebApi 中使用 Session
1. 在 Global.asax.cs 文件中加入session支持 protected void Application_Start() { AreaRegistration.RegisterAll ...
- 九度OJ 1335:闯迷宫 (BFS)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1782 解决:483 题目描述: sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫. sun的室友在帮电脑节设计 ...
- spring属性注入方式
一.使用有参构造注入属性 配置文件 constructor-arg标签是需注入属性的名字 User类 生成了User的有参构造函数 测试类 结果 打印出了name属性的值 二.使用set方法注入属性 ...
- python基础17 ---继承补充知识
一.继承的顺序 1.在python中的类可以集成多个类,既然是继承多个类就有类的寻找顺序这么一说.其寻找方法就有广度优先和深度优先两种. 2.当类是新式类,多继承的情况下会按照广度优先的顺序查找. 如 ...
- pycharm ctrl+滚轮调节字体大小
File --> Setting --> Editor --> General --> 勾选Change font size (zoom) with Ctrl+Mouse Wh ...
- Centos下MySQL数据库主从双向同步配置
MYSQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务 ...
- 牛客练习赛13 B 幸运数字Ⅱ 【暴力】【二分】
题目链接 https://www.nowcoder.com/acm/contest/70/B 思路 没有代码限制 先打表 打出 幸运数字的表 然后 二分查找 第一个 大于 r 的幸运数字 然后 往 L ...
- iOS JSON 和 Mode l转换
MJExtension 是我们项目开发常用的一个第三方框架 很好用. https://github.com/CoderMJLee/MJExtension 映射 json value key 直 ...
- Qt事件机制(是动作发生后,一种通知对象的消息,是被动与主动的总和。先处理自己队列中的消息,然后再处理系统消息队列中的消息)
Qt事件机制 Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.. Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. Qt事件的类型很多, 常见的qt的事件如下: 键盘事 ...