自己用的表单验证函数
时间:2009-03-11
来源:互联网
[php]
//表单验正函数-------------------------------------------------------------------------------------------------------
//参数说明: validate(数值,是否必添,类型,长度检验,'提示文字内容');
//$value 数值:待检验的表单值
//是否必添:1为必添 默认为 0
//$type 类型分为:数字=0、字母=1、中文=2、字母和数字=3、email=4、日期格式0000-00-00=5、身份证号码=6、电话号码=7、邮编=8、url地址=9、10为无限制
//长度检验:0为不检验 数值为指定长度
//$_POST['email'] = [email=]'[email protected]'[/email];
//$_POST['tel'] = '888888';
//$_POST['birthday'] = '1980-2-30';
//$validate($_POST['email'],'4','请输入正确的email');
//$validate($_POST['tel'],'7','请输入正确的电话号码');
//$validate($_POST['birthday'],'5','请输入正确的生日日期',true,array('ymd'));
function validate($value,$onoff=0,$type=3,$len=100,$msg='填写错误') {
if(trim($value) != ""){ //如果有内容
if(!is_int($len))
exit("<script language=javascript>alert('长度参数不是数字');</script>");
preg_match_all("/[\xa0-\xff]?./",$value,$arr); //中英文混排算字符串长度
$qswhLen_v=count($arr[0]);
if($qswhLen_v> $len)
{
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]长度错误!');</script>");
}
if ($type==0){ //类型为0的话 检查数据是否为数字
if(!eregi('^[0-9]+$', $value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是数字!');</script>");
}
}
else if ($type==1){ //类型为1的话 检查数据是否为字母
if(!eregi('^[a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是字母!');</script>");
}
}
else if ($type==2){ //类型为2的话 检查数据是否为中
if(!preg_match("/^[\x7f-\xff]+$/",$value)){ //兼容gb2312,utf-8
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是中文!');</script>");
}
/* 编码表
双字节字符编码范围
1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文 gb2312
\x80-\xff 中文 gbk
2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)*/
}
else if ($type==3){ //类型为3的话 检查数据是否为字母和数字
if(!eregi('^[0-9a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是字母和数字!');</script>");
}
}
else if ($type==4){ //类型为4的话 email检查
if(!eregi("^([_a-z0-9]+([._a-z0-9-]+)*)@([a-z0-9]{2,}(.[a-z0-9-]{2,})*.[a-z]{2,3})$", $value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==5){ //类型为5的话 日期格式检查
if(!eregi('^[1-2]{1}[0-9]{3}-[0-9]{2}-[0-9]{2}',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==6){ //类型为6的话 身份证号码格式检查
if(!preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==7){ //类型为7的话 电话号码格式检查
if(!preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==8){ //类型为8的话 邮编格式检查
if(!preg_match("/^[1-9]\d{5}$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==9){ //类型为9的话 url地址格式检查
if(!preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==10){ //类型为10的话 无限制
}else{
echo "<script language=javascript>alert('类别错误');</script>";
exit;
}
}else{
if($onoff!=0){
echo "<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]请添写".$msg."');</script>";
exit;
}
}
}
[/php]
//表单验正函数-------------------------------------------------------------------------------------------------------
//参数说明: validate(数值,是否必添,类型,长度检验,'提示文字内容');
//$value 数值:待检验的表单值
//是否必添:1为必添 默认为 0
//$type 类型分为:数字=0、字母=1、中文=2、字母和数字=3、email=4、日期格式0000-00-00=5、身份证号码=6、电话号码=7、邮编=8、url地址=9、10为无限制
//长度检验:0为不检验 数值为指定长度
//$_POST['email'] = [email=]'[email protected]'[/email];
//$_POST['tel'] = '888888';
//$_POST['birthday'] = '1980-2-30';
//$validate($_POST['email'],'4','请输入正确的email');
//$validate($_POST['tel'],'7','请输入正确的电话号码');
//$validate($_POST['birthday'],'5','请输入正确的生日日期',true,array('ymd'));
function validate($value,$onoff=0,$type=3,$len=100,$msg='填写错误') {
if(trim($value) != ""){ //如果有内容
if(!is_int($len))
exit("<script language=javascript>alert('长度参数不是数字');</script>");
preg_match_all("/[\xa0-\xff]?./",$value,$arr); //中英文混排算字符串长度
$qswhLen_v=count($arr[0]);
if($qswhLen_v> $len)
{
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]长度错误!');</script>");
}
if ($type==0){ //类型为0的话 检查数据是否为数字
if(!eregi('^[0-9]+$', $value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是数字!');</script>");
}
}
else if ($type==1){ //类型为1的话 检查数据是否为字母
if(!eregi('^[a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是字母!');</script>");
}
}
else if ($type==2){ //类型为2的话 检查数据是否为中
if(!preg_match("/^[\x7f-\xff]+$/",$value)){ //兼容gb2312,utf-8
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是中文!');</script>");
}
/* 编码表
双字节字符编码范围
1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文 gb2312
\x80-\xff 中文 gbk
2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)*/
}
else if ($type==3){ //类型为3的话 检查数据是否为字母和数字
if(!eregi('^[0-9a-zA-Z]+$',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]必须是字母和数字!');</script>");
}
}
else if ($type==4){ //类型为4的话 email检查
if(!eregi("^([_a-z0-9]+([._a-z0-9-]+)*)@([a-z0-9]{2,}(.[a-z0-9-]{2,})*.[a-z]{2,3})$", $value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==5){ //类型为5的话 日期格式检查
if(!eregi('^[1-2]{1}[0-9]{3}-[0-9]{2}-[0-9]{2}',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==6){ //类型为6的话 身份证号码格式检查
if(!preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==7){ //类型为7的话 电话号码格式检查
if(!preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==8){ //类型为8的话 邮编格式检查
if(!preg_match("/^[1-9]\d{5}$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==9){ //类型为9的话 url地址格式检查
if(!preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$value)){
exit("<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]格式错误!');</script>");
}
}
else if ($type==10){ //类型为10的话 无限制
}else{
echo "<script language=javascript>alert('类别错误');</script>";
exit;
}
}else{
if($onoff!=0){
echo "<script language=javascript>alert('".$msg."[url=file://\\n]\\n[/url]请添写".$msg."');</script>";
exit;
}
}
}
[/php]
作者: joj_79 发布时间: 2009-03-11
学习学习哦!!
作者: sanfe 发布时间: 2009-03-12
不错
你可以以PHP代码形式显示 那样更直观
你可以以PHP代码形式显示 那样更直观
作者: E蜗牛 发布时间: 2009-03-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28