`
liu86th
  • 浏览: 118307 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jQuery验证类

 
阅读更多
$.extend({
    /**
     * 是否整数
     */
    isInt: function(s){
        return (/^-?\d+$/).test(s);
    },
    /**
     * 是否正整数 包括第一位是0
     */
    isPint: function(s){
        return (/^\d+$/).test(s);
    },
    
    /**
     * 是否正整数 1 . 2 . 3 ...
     */
    isRPint: function(s){
        return (/^[1-9]\d*$/).test(s);
    },

    /**
     * 是否大于零的整数
     */
    isGint: function(s){
        return (/^\d+$/).test(s) ? ((/^0+$/).test(s)? false : true) : false;
    },

    /**
     * 是否浮点数
     */
    isFloat: function(s){
        return (/^(-?\d+)(\.\d+)?$/).test(s);
    },

    /**
     * 是否非负浮点数
     */
    isPfloat: function(s){
        return (/^\d+(\.\d+)?$/).test(s);
    },

    /**
     * 数组查询
     */
    indexOf:function(arr,substr,start){
        var ta,rt,d='\\0';
        if(start!==null){
            ta=arr.slice(start);
            rt=start;
        }else{
            ta=arr;
            rt=0;
        }
        var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
        if(t==-1){
            return -1;
        }
        rt += str.slice(0,t).replace(/[^\0]/g,'').length;
        return rt;
    },
    
    /**
     * 检查帐号或密码的合法性
     * 账号由4-12位英文字母、数字、下划线组成,且第一位不能是下划线
     */
    isUsername: function(s){
        return (/^[a-zA-Z0-9]+[a-zA-Z0-9_]{3,11}$/).test(s);
    },

    /**
     * 检查密码的合法性 4-12
     */
    isPassword: function(s){
        return (/^[^\u4e00-\u9fa5]{1,16}$/).test(s);
    },
    
    /**
     * 检查真实姓名
     */
    isRealName: function(s){
        return (/^[\u4e00-\u9fa5]{2,8}$/).test(s);
    },
    
    /**
     * 检查身份证
     */
    isIdCard: function(s){
        return (/^[0-9a-zA-Z]{18,18}$/).test(s);
    },
    
    /*
     * 检查email
     */
    isEmail: function(s){
        return (/^([A-Za-z0-9_])+@([A-Za-z0-9_-]+[.])+([A-Za-z]{2,3})$/).test(s);
    },

    /*
     * 检查mobile手机格式
     */
    isMobile: function(s){
        return (/^(13|14|15|18)[0-9]{9}$/).test(s);
    },
            
    /**
     * 检查日期的合法性
     * ins : input array
     * start: start index
     * msg: alter masseger if wrong
     * return array[时间戳, eg:1999-2-6 12:9:8, eg:1999-02-06 12:09:08]
     */
    isValidDate: function(ins, start, msg) {
        start = start || 0;
        for(var i=start; i<6; i++){
            if(!$.isPint(ins[i].value)){//判断是否整数
                alert(msg);
                ins[i].select();
                return false;
            }
        }
        var t = [parseInt(ins[start].value, 10), parseInt(ins[start + 1].value, 10)-1, parseInt(ins[start + 2].value, 10), parseInt(ins[start + 3].value, 10), parseInt(ins[start + 4].value, 10), 0];
        var fd = new Date(t[0], t[1], t[2], t[3], t[4], t[5]);
        if(fd.getFullYear() !== t[0] || fd.getMonth() !== t[1] || fd.getDate() !== t[2] || fd.getHours() !== t[3] || fd.getMinutes() !== t[4]){
            alert(msg);
            if(t[0]<1970){
                ins[start].select();//year
            }else if(t[1]>11){
                ins[start + 1].select();//mouth
            }else if(t[3]>23){
                ins[start + 3].select();//hour
            }else if(t[4]>59){
                ins[start + 4].select();//minute
            }else{
                ins[start + 2].select();//day
            }
            return false;
        }
        return [fd, t[0]+'-'+(t[1]+1)+'-'+t[2]+' '+t[3]+':'+t[4]+':0', ins[start].value+'-'+ins[start + 1].value+'-'+ins[start + 2].value+' '+ins[start + 3].value+':'+ins[start + 4].value+':00'];
    },
            
    /**
     *选择某个元素,并将光标定位到此元素上
     */
    selectEm : function(em){
        setTimeout(function(){em.focus();em.select();}, 0); //解决ie focus bug,使用延迟选择
    },
            
    /**
     * 验证传入的form元素的合法性,根据最后确定的边界值调整
     * 使用此方法,需要在元素里面加属性 valid, 另外请确定你的valid值在msgs和switch里面
     */
    validateEm: function(em){
        var type = $(em).attr('valid');
        var val = em.value;
        var re = true;
        var msgback = function(){
            var msg = {
                'name':     '名称由1-16位字符组成',
                'account':  '账号由4-12位英文字母、数字、下划线组成,且第一位不能是下划线',
                'password': '密码由4-16位字符组成',
                'epassword':'密码由4-16位字符组成',
                'amount':   '金额由不大于9位的正整数组成',
                'order':    '优先顺序由1-999的整数组成',
                'hour':     '小时为24时制小时格式',
                'minute':   '分钟为24时制分钟格式',
                'days':     '日期不正确!',
                'email':    '邮箱格式不正确',
                'mobile':   '手机格式不正确',
                'tel':   '电话格式不正确',
                'safe': '数据格式不正确',
                'select': '请选择分类',
                'tag':'标签由4-10位字母组成',
                'qq': 'QQ号码格式不正确',
                'uid': 'UID格式不正确',
                'url':'url格式不正确',
                'num':'不是数字'
            };
            alert(msg[type]);
            $.selectEm(em);
        };
        
        switch(type){
            case 'name':
                re = (/.{1,16}/).test(val);
            break;
            case 'account':
                re = (/^[a-zA-Z0-9]+[a-zA-Z0-9_]{3,11}$/).test(val);
            break;
            case 'password':
                re = (/^[^\u4e00-\u9fa5]{4,16}$/).test(val);
            break;
            case 'epassword':
                re = (/^[^\u4e00-\u9fa5]{4,16}$/).test(val);
            break;
            case 'amount':
                re = (/^[1-9]\d{0,8}$/).test(val);
            break;
            case 'order':
                re = (/^[1-9]\d{0,2}$/).test(val);
            case 'hour':
                var hour = parseInt(val,10);
                re = !(!(/^\d(\d)?$/).test(val) || hour > 23 || hour < 0);
            break;
            case 'minute':
                var minute = parseInt(val,10);
                re = !(!(/^\d(\d)?$/).test(val) || minute > 59 || minute < 0);
            break;
            case 'days':
                re = (0 < val && val <= ($.getDaysOfMon()));
            break;
            case 'email':
                re = (/^([A-Za-z0-9_])+@([A-Za-z0-9_-]+[.])+([A-Za-z]{2,3})$/).test(val);
            break;
            case 'mobile':
                re = (/^1[3|4|5|8][0-9]\d{8}$/).test(val);
            break;
            case 'tel':
                re = (/^(([0\+]\d{2,3}-)?(0\d{2,3})-?)?(\d{7,8})(-(\d{3,}))?$/).test(val);
            break;
            case 'safe':
                re = (/^[\w|\u4e00-\u9fa5]+$/).test(val);
            break;
            case 'select':
                re = (/\d/).test(val);
            break;
            case 'tag':
                re = (/[A-Z]{4,10}/).test(val);
            break;
            case 'qq':
                re = (/^[1-9]\d{4,11}$/).test(val);
            break;
            case 'uid':
                re = (/^068\d{8}$/).test(val);
            break;
            case 'url':
                re = (/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/).test(val);
            break;
            case 'num':
                re = (/^\d+$/).test(val);
            break;

            default:
            break;
        }
        if(!re){msgback();}
        return re;
    },
    
    /**
     * 验证一个form里面的元素,只验证带有valid属性的元素
     */
    validateForm: function(form){
        var ems = form.elements;
        for(var i = 0; i < ems.length; i++){
            if($(ems[i]).attr('valid') && !$.validateEm(ems[i])){
                return false;
            }
        }
        return true;
    }, 
    
    /**
     * 得到某月的天数,默认当前月
     */
    getDaysOfMon:function(date){
        var dt = '';
        if(date){
            dt = new Date(date); //得到当前时间
        }else{
            dt = new Date(); //得到当前时间
        }
        dt = new Date(dt.getFullYear(), dt.getMonth() + 1, 0); //得到本月最后一天
        return(dt.getDate()); // 本月最后一天即为本月的天数
    },
            
   /**
     * 文件上传函数
     */
    fileUpload: function(url, id) {
        $("#pop_up_pos").css("display","block");
        id = typeof(id) == 'undefined' ? 1 : id;
        $.ajaxFileUpload({
            url: url, //用于文件上传的服务器端请求地址
            secureuri: false, //一般设置为false
            fileElementId: 'repair_attached_file' + id, //文件上传空间的id属性  <input type="file" id="file" name="file" />
            dataType: 'json', //返回值类型 一般设置为json
            success: function(data, status){  //服务器成功响应处理函数
                $("#pop_up_pos").css("display","none");
                alert(data.msg);
                if (data.success == 1){
                    //增加
                    //显示图片
                    $("#file_imgshowli" + data.index).attr('src', ' ');
                    $("#file_imgshowli" + data.index).attr('src', data.imageurl);
                    $("#profileimage" + data.index).val(data.imagepath);
                }
            }
        });
        return false;
    },

});

 

分享到:
评论

相关推荐

    非常好的JQUERY验证类

    标题中的"非常好的JQUERY验证类"指的是利用jQuery进行表单验证的方法,这在构建交互式网页时尤为重要。jQuery验证插件能够帮助开发者创建用户友好且功能强大的验证规则,确保用户在提交数据前输入的信息符合预期格式...

    jquery 验证插件

    表单验证类,jquery通用的验证类,jquery验证插件

    JQuery验证

    **jQuery验证插件详解** jQuery验证插件是前端开发中常用的一个工具,它极大地简化了网页表单验证的实现过程,让开发者能够更专注于业务逻辑而不是基础验证功能。本篇文章将深入探讨jQuery验证插件的核心功能、使用...

    jquery验证插件!

    ### jQuery验证插件的核心特性 1. **易用性**:jQuery验证插件最大的优点是其简单易用的API。开发者无需预先编写HTML提示信息,而是通过JavaScript代码动态设置验证规则和错误消息。 2. **灵活性**:该插件支持...

    Jquery验证框架

    **jQuery验证框架**是一种在Web开发中用于前端数据验证的工具,它极大地简化了JavaScript验证的复杂性。jQuery库的强大功能结合验证插件,能够帮助开发者创建用户友好的、响应迅速的表单验证机制,确保用户输入的...

    Java Web Jquery表单验证

    编写基于Jquery的表单验证插件 Java Web Jquery表单验证 jQuery是一个流行的JavaScript库,可用于在网页上进行各种操作,包括表单验证。 1、将基于Jquery的表单验证的调查问卷分为四个部分:FrontPage.html、write....

    jquery表单验证插件

    ### jQuery表单验证插件详解 #### 一、概述 jQuery表单验证插件是一种用于简化Web表单处理过程的强大工具。它不仅能够帮助开发者轻松地实现表单数据的Ajax提交,还支持文件上传等功能,极大地提升了用户体验并降低...

    jquery表单验证类

    **jQuery表单验证类**是JavaScript库jQuery中的一个重要应用,主要用于增强网页表单的数据验证功能。这个类使得开发者能够方便地实现对用户输入的实时验证,确保数据的准确性和完整性,提升用户体验。在Web开发中,...

    validation-jQuery验证插件

    简述jQuery验证插件validation的功能和使用

    jquery验证

    jQuery验证插件是基于jQuery的一个强大的插件,由Jörn Zaefferer创建并维护。该插件提供了一种简单的方式来处理表单验证,并且支持多种自定义选项和方法,使其成为前端表单验证的首选工具之一。 #### 三、基本使用...

    js JQuery验证电子邮箱的函数

    本文将深入解析一个具体的场景:使用js和JQuery进行电子邮件地址、电话号码以及邮政编码的验证。 ### 一、JS与JQuery在邮件验证中的应用 #### 1. 正则表达式在邮件验证中的作用 在上述代码示例中,核心是使用正则...

    jquery验证包

    《jQuery验证包详解》 在Web开发中,数据验证是必不可少的一环,它能确保用户输入的数据符合预期,从而保证程序的稳定性和安全性。jQuery验证包(jQuery Validation Plugin)是jQuery库的一个强大扩展,用于方便地...

    jQuery 验证控件

    "jQuery验证控件"是将jQuery与表单验证功能相结合的一种实现方式,旨在提供更灵活、用户友好的验证体验。 jQuery验证控件通常包括以下核心组件和特性: 1. **验证插件**:jQuery提供了许多验证插件,如jQuery ...

    jquery验证插件 带文档 支持中文

    jQuery验证插件是一款广泛应用于前端开发中的工具,它极大地简化了网页表单验证的过程,使得开发者可以方便地为用户输入的数据添加各种验证规则。这款插件不仅具备丰富的验证功能,而且特别强调对中文的支持,这在...

    jQuery好的验证框架

    **jQuery验证框架** jQuery是一个广泛使用的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画和Ajax交互。在Web开发中,数据验证是必不可少的一环,用于确保用户输入的有效性和安全性。jQuery验证框架...

    JQuery验证框架

    JQuery验证框架JQuery验证框架JQuery验证框架

    jquery验证密码强度

    标题“jquery验证密码强度”指的是使用JavaScript库jQuery来实现对用户输入密码的强度进行验证的功能。在网页表单中,为了提高用户账户的安全性,通常会要求用户设置具有一定复杂度的密码,例如包含大小写字母、数字...

    jQuery表单验证大全

    《jQuery表单验证详解》 在Web开发中,表单验证是不可或缺的一部分,它能确保用户输入的数据符合预设的规则,从而保护服务器免受不合法数据的影响,提高用户体验。jQuery,作为一款广泛使用的JavaScript库,提供了...

    表单验证jquery插件

    jQuery Validation Engine 是一个功能强大的表单验证插件,以其简单易用和丰富的自定义选项而受到开发者的青睐。 ## 1. jQuery Validation Engine 插件简介 jQuery Validation Engine 是一款基于 jQuery 库的验证...

    jquery 前端验证框架

    **二、jQuery验证框架的重要性** 前端验证不仅能够即时反馈用户输入错误,提高用户交互体验,还能减少服务器端的压力,避免无效请求。jQuery的验证框架提供了一套灵活、可定制的验证规则,使开发者可以快速构建表单...

Global site tag (gtag.js) - Google Analytics