+ -
当前位置:首页 → 问答吧 → 自己用的表单验证函数

自己用的表单验证函数

时间: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]

作者: joj_79   发布时间: 2009-03-11

学习学习哦!!

作者: sanfe   发布时间: 2009-03-12

不错

你可以以PHP代码形式显示  那样更直观

作者: E蜗牛   发布时间: 2009-03-13