封装jQuery Validate扩展验证方法

来源:互联网 发布:周朝八百年 知乎 编辑:程序博客网 时间:2024/06/05 22:36

一、封装自定义验证方法-validate-methods.js

复制代码
/*****************************************************************                  jQuery Validate扩展验证方法  (linjq)       *****************************************************************/$(function(){    // 判断整数value是否等于0     jQuery.validator.addMethod("isIntEqZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value==0;           }, "整数必须为0");           // 判断整数value是否大于0    jQuery.validator.addMethod("isIntGtZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value>0;           }, "整数必须大于0");           // 判断整数value是否大于或等于0    jQuery.validator.addMethod("isIntGteZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value>=0;           }, "整数必须大于或等于0");           // 判断整数value是否不等于0     jQuery.validator.addMethod("isIntNEqZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value!=0;           }, "整数必须不等于0");          // 判断整数value是否小于0     jQuery.validator.addMethod("isIntLtZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value<0;           }, "整数必须小于0");          // 判断整数value是否小于或等于0     jQuery.validator.addMethod("isIntLteZero", function(value, element) {          value=parseInt(value);               return this.optional(element) || value<=0;           }, "整数必须小于或等于0");          // 判断浮点数value是否等于0     jQuery.validator.addMethod("isFloatEqZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value==0;           }, "浮点数必须为0");           // 判断浮点数value是否大于0    jQuery.validator.addMethod("isFloatGtZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value>0;           }, "浮点数必须大于0");           // 判断浮点数value是否大于或等于0    jQuery.validator.addMethod("isFloatGteZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value>=0;           }, "浮点数必须大于或等于0");           // 判断浮点数value是否不等于0     jQuery.validator.addMethod("isFloatNEqZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value!=0;           }, "浮点数必须不等于0");          // 判断浮点数value是否小于0     jQuery.validator.addMethod("isFloatLtZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value<0;           }, "浮点数必须小于0");          // 判断浮点数value是否小于或等于0     jQuery.validator.addMethod("isFloatLteZero", function(value, element) {          value=parseFloat(value);               return this.optional(element) || value<=0;           }, "浮点数必须小于或等于0");          // 判断浮点型      jQuery.validator.addMethod("isFloat", function(value, element) {                return this.optional(element) || /^[-\+]?\d+(\.\d+)?$/.test(value);           }, "只能包含数字、小数点等字符");          // 匹配integer    jQuery.validator.addMethod("isInteger", function(value, element) {                return this.optional(element) || (/^[-\+]?\d+$/.test(value) && parseInt(value)>=0);           }, "匹配integer");           // 判断数值类型,包括整数和浮点数    jQuery.validator.addMethod("isNumber", function(value, element) {                return this.optional(element) || /^[-\+]?\d+$/.test(value) || /^[-\+]?\d+(\.\d+)?$/.test(value);           }, "匹配数值类型,包括整数和浮点数");          // 只能输入[0-9]数字    jQuery.validator.addMethod("isDigits", function(value, element) {                return this.optional(element) || /^\d+$/.test(value);           }, "只能输入0-9数字");          // 判断中文字符     jQuery.validator.addMethod("isChinese", function(value, element) {                return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);           }, "只能包含中文字符。");        // 判断英文字符     jQuery.validator.addMethod("isEnglish", function(value, element) {                return this.optional(element) || /^[A-Za-z]+$/.test(value);           }, "只能包含英文字符。");         // 手机号码验证        jQuery.validator.addMethod("isMobile", function(value, element) {          var length = value.length;          return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));        }, "请正确填写您的手机号码。");    // 电话号码验证        jQuery.validator.addMethod("isPhone", function(value, element) {          var tel = /^(\d{3,4}-?)?\d{7,9}$/g;          return this.optional(element) || (tel.test(value));        }, "请正确填写您的电话号码。");    // 联系电话(手机/电话皆可)验证       jQuery.validator.addMethod("isTel", function(value,element) {           var length = value.length;           var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;           var tel = /^(\d{3,4}-?)?\d{7,9}$/g;               return this.optional(element) || tel.test(value) || (length==11 && mobile.test(value));       }, "请正确填写您的联系方式");       // 匹配qq          jQuery.validator.addMethod("isQq", function(value, element) {                return this.optional(element) || /^[1-9]\d{4,12}$/;           }, "匹配QQ");         // 邮政编码验证        jQuery.validator.addMethod("isZipCode", function(value, element) {          var zip = /^[0-9]{6}$/;          return this.optional(element) || (zip.test(value));        }, "请正确填写您的邮政编码。");          // 匹配密码,以字母开头,长度在6-12之间,只能包含字符、数字和下划线。          jQuery.validator.addMethod("isPwd", function(value, element) {                return this.optional(element) || /^[a-zA-Z]\\w{6,12}$/.test(value);           }, "以字母开头,长度在6-12之间,只能包含字符、数字和下划线。");          // 身份证号码验证    jQuery.validator.addMethod("isIdCardNo", function(value, element) {       //var idCard = /^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/;         return this.optional(element) || isIdCardNo(value);        }, "请输入正确的身份证号码。");     // IP地址验证       jQuery.validator.addMethod("ip", function(value, element) {          return this.optional(element) || /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/.test(value);        }, "请填写正确的IP地址。");       // 字符验证,只能包含中文、英文、数字、下划线等字符。        jQuery.validator.addMethod("stringCheck", function(value, element) {                return this.optional(element) || /^[a-zA-Z0-9\u4e00-\u9fa5-_]+$/.test(value);           }, "只能包含中文、英文、数字、下划线等字符");          // 匹配english      jQuery.validator.addMethod("isEnglish", function(value, element) {                return this.optional(element) || /^[A-Za-z]+$/.test(value);           }, "匹配english");           // 匹配汉字      jQuery.validator.addMethod("isChinese", function(value, element) {                return this.optional(element) || /^[\u4e00-\u9fa5]+$/.test(value);           }, "匹配汉字");           // 匹配中文(包括汉字和字符)     jQuery.validator.addMethod("isChineseChar", function(value, element) {                return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);           }, "匹配中文(包括汉字和字符) ");           // 判断是否为合法字符(a-zA-Z0-9-_)    jQuery.validator.addMethod("isRightfulString", function(value, element) {                return this.optional(element) || /^[A-Za-z0-9_-]+$/.test(value);           }, "判断是否为合法字符(a-zA-Z0-9-_)");           // 判断是否包含中英文特殊字符,除英文"-_"字符外    jQuery.validator.addMethod("isContainsSpecialChar", function(value, element) {           var reg = RegExp(/[(\ )(\`)(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\+)(\=)(\|)(\{)(\})(\')(\:)(\;)(\')(',)(\[)(\])(\.)(\<)(\>)(\/)(\?)(\~)(\!)(\@)(\#)(\¥)(\%)(\…)(\&)(\*)(\()(\))(\—)(\+)(\|)(\{)(\})(\【)(\】)(\‘)(\;)(\:)(\”)(\“)(\’)(\。)(\,)(\、)(\?)]+/);            return this.optional(element) || !reg.test(value);           }, "含有中英文特殊字符");          //身份证号码的验证规则    function isIdCardNo(num){         //if (isNaN(num)) {alert("输入的不是数字!"); return false;}        var len = num.length, re;        if (len == 15)        re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);        else if (len == 18)        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);        else {            //alert("输入的数字位数不对。");             return false;        }        var a = num.match(re);        if (a != null)        {        if (len==15)        {        var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);        var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];        }        else        {        var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);        var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];        }        if (!B) {            //alert("输入的身份证号 "+ a[0] +" 里出生日期不对。");             return false;        }        }        if(!re.test(num)){            //alert("身份证最后一位只能是数字和字母。");            return false;        }       return true;     } });
复制代码

二、测试-validate-methods.jsp

复制代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://" + request.getServerName() + ":"            + request.getServerPort() + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <base href="<%=basePath%>">        <title>jQuery Validate扩展验证方法</title>        <meta http-equiv="pragma" content="no-cache">        <meta http-equiv="cache-control" content="no-cache">        <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">        <meta http-equiv="description" content="This is my page">        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery-1.6.2.min.js"></script>        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.validate.min.js"></script>        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/jquery.metadata.min.js"></script>        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/validate-methods.js"></script>        <script type="text/javascript" src="<%=request.getContextPath()%>/validate/messages_zh.js"></script>        <script type="text/javascript">        $(function(){            var validate = $("#myform").validate({                debug: true, //调试模式取消submit的默认提交功能                    submitHandler: function(form){   //表单提交句柄,为一回调函数,带一个参数:form                       alert("提交表单");                       form.submit();   //提交表单                   },                                   rules:{                    zero:{                        //isIntEqZero:true                        //isFloat:true                        //isInteger:true                        //isNumber:true                        //isMobile:true                        //isPhone:true                        //isTel:true                        //isIdCardNo:true                        //isRightfulString:true                        isContainsSpecialChar:true                    }                                },                //如果验证控件没有message,将调用默认的信息                messages:{                    zero:{                        //isIntEqZero:"请输入0"                        //isFloat:"请输入浮点数"                        //isInteger:"请输入整数"                    }                                                                     }                                      });                    });        </script>    </head>    <body>        <form id="myform" method="post" action="">            <p>                <label for="zero">输入框:</label>                <!-- id和name最好同时写上 -->                <input id="zero" name="zero" />            </p>                     <p>                <input class="submit" type="submit" value="验证" />            </p>        </form>    </body></html>
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 联想手机开机密码忘了怎么办 红米note3忘记开机密码怎么办 小米2忘了密码怎么办 小米笔记本电脑忘记开机密码怎么办 小米笔记本忘记开机密码怎么办 小米手机儿童模式忘记密码怎么办 小米应用锁密码忘了怎么办 小米air密码忘了怎么办 小米4密码忘了怎么办 小米手机开机密码忘了怎么办? 小米笔记本电脑开机密码忘了怎么办 小米笔记本开机密码忘了怎么办 htc手机忘记解锁图案怎么办 红米手机屏幕锁定怎么解锁怎么办 小米5s有id怎么办 手机密码找不回来了怎么办? 手机密码图案忘了怎么办 手机屏幕图案锁忘了怎么办 捡到苹果7有id锁怎么办 魅族什么都忘了怎么办 海信电视百事通登陆失败怎么办 去哪儿换号了怎么办 ipan充不进去电怎么办 安卓数据线松了怎么办 索尼z5耳机掉漆怎么办 索尼z5无限重启怎么办 苹果8基带坏了怎么办 oppo手机忘记图案密码怎么办 电池充不进去电怎么办 电脑充不进去电怎么办 苹果5c白苹果怎么办 港行不支持电信卡怎么办 安卓导航不开机怎么办 鞭炮放一半不响怎么办 禁止鸣笛的地方鸣笛了怎么办 手被炮仗炸了怎么办 手被猴子抓伤了怎么办 炸东西剩的油怎么办 炸臭豆腐剩的油怎么办 油炸久了油发黑怎么办 炸鱼的时候粘锅怎么办