js数据校验插件

Posted 故事里的牧羊人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js数据校验插件相关的知识,希望对你有一定的参考价值。

//数据校验
/**
 *{type:"类型",notEmpty:true,regxp: reg,MaxLength: number,MinLength number,message: ‘错误提示信息‘}
 * 校验类型 type:phone(手机号)/mail(邮箱)/mount(整数)/money(金额)/passwd(密码)/reg(正则验证)/notNull(不能为空) 必填
 * 是否可为空 Emptable: true(true可为空,false不能为空;默认为false)
 * 正则匹配 regexp( 内容与该正则进行验证,type需要为reg,否则无效 message 错误提示信息 )  type为reg时必填
 * 失败提示内容message: String type为reg/notNull时必填
 * 例子:{type:phone,notEmpty:true}
 * @constructor
 */
var TestData = function () {
    var me = this;
    //全体校验方法
    me.TestAll = function(){
        var InputList = $("[validata]");
        var data = ‘‘;
        var result = true;
        for(var i=0;i<InputList.length;i++){
            data = InputList[i].getAttribute("validata");
            if(data){
                data = me.strToJson(data);
                if(!me.ifNull(data.type)){
                    var value = InputList[i].value;
                    if(!me.TestByType(data,value)){
                        return false;
                    }
                }else{
                    console.log("type不能为空")
                }
            }
        }
        return result;
    };
    //根据type进行验证
    me.TestByType = function (data,value) {
        if(data.type == ‘phone‘){
            if(value){
                return me.isPhone(value);
            }else{
                return me.isEmpty(‘‘,data.Emptable,‘手机不能为空‘)
            }
        }else if(data.type == ‘mail‘){
            if(value){
                return me.isMail(value);
            }else{
                return me.isEmpty(‘‘,data.Emptable,‘邮箱不能为空‘)
            }

        }else if(data.type == ‘passwd‘){
            if(value){
                return me.isPwd(value);
            }else{
                return me.isEmpty(‘‘,data.Emptable,‘密码不能为空‘)
            }

        }else if(data.type == ‘reg‘){
            if(me.ifNull(data.regex)){
                console.log(‘参数缺少正则表达式‘)
                return false;
            }else if(me.ifNull(data.message)){
                console.log(‘参数message作为提示信息‘)
                return false;
            }
            return me.regTset(value,data.regex,data.message)

        }else if(data.type == ‘mount‘){
            if(value){
                return me.isNumber(value);

            }else{
                return me.isEmpty(‘‘,data.Emptable,‘数量不能为空‘)
            }
        }else if(data.type == ‘money‘){
            if(value){
                return me.isMoney(value);
            }else{
                return me.isEmpty(‘‘,data.Emptable,‘金额不能为空‘)
            }
        }else if(data.type == ‘notNull‘){
            return me.isEmpty(value,data.Emptable,data.message)
        }
    }
    //正则验证
    me.regTset = function (o,regex,message) {
        var reg = regex;
        if(o){
            if(!reg.test(o)) {
                wrap.alert(message);//验证不通过提示
                return false;
            }
        }else{
            return me.isEmpty(‘‘,false,message);
        }

        return true;
    }
    //密码校验
    me.isPwd = function (o) {
        return me.regTset(o,/^[0-9a-zA-Z]+$/,‘密码格式错误‘);
    }
    //手机号校验
    me.isPhone = function (o) {
//        var phone_reg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
        var phone_reg = /^(1+\d{10})$/;
        return me.regTset(o,phone_reg,‘请输入有效的手机号码‘);
    }
    //邮箱校验
    me.isMail = function (o) {
        var mail_reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9][email protected]([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
        return me.regTset(o,mail_reg,‘请输入有效的邮箱‘);
    }
    //金额校验
    me.isMoney = function (o) {
        var money_reg = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/;
        return me.regTset(o,money_reg,‘请输入有效的金额‘);
    }
    //数量校验
    me.isNumber = function (o) {
        var number_reg = /^[1-9]\d*$/;
        return me.regTset(o,number_reg,‘请输入正确的数量‘);
    }
    //是否允许为空 允许为空 返回true 不允许为空 且为空,返回false 打印错误信息
    me.isEmpty = function(o,emptable,message) {
        if(emptable){
            return true;
        }else{
            if(o == undefined || o == "" || o == null){
                wrap.alert(message);
                return false;
            }
            return true;
        }

    }
    //是否为null
    me.ifNull = function (o) {
        return o == undefined || o == "" || o == null
    }
    //string转json
    me.strToJson = function (str){
        var json = eval(‘(‘ + str + ‘)‘);
        return json;
    }
}

 

以上是关于js数据校验插件的主要内容,如果未能解决你的问题,请参考以下文章

vscode代码片段生成vue模板

angularJS使用ocLazyLoad实现js延迟加载

为啥vscode中.js文件没有片段提示,但是.html文件有提示?

jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

jQuery插件—validation实现表单校验

案例15-基本的表单校验使用validate