Browse Source

ip,email等正则校验完善

shine 9 years ago
parent
commit
b757f76b87
1 changed files with 148 additions and 49 deletions
  1. 148 49
      Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js

+ 148 - 49
Hos-resource/src/main/webapp/develop/lib/ligerui/custom/ligerEx.js

@ -819,6 +819,7 @@
    $.ligerDefaults.AutoForm = {
        data:null,
        readonly: false,           //是否只读
        validate:null, //校验
        message:null //校验提示
@ -836,7 +837,7 @@
        defaultMessage:{
            required: "必填项",
            email: "请输入有效的电子邮件地址",
            url: "请输入有效的网址",
            ip: "请输入有效的ip地址",
            date: "请输入有效的日期",
            dateISO: "请输入有效的日期 (YYYY-MM-DD)",
            number: "请输入有效的数字",
@ -1025,18 +1026,42 @@
                        return message;
                    }
                }
                else if(rule== "equalTo")
                {debugger
                    if(ruleValue=="") {
                        return "密码未输入";
                    }
                    else if(ruleValue!=value && value!="") {
                        return message;
                    }
                }
                else{
                    debugger
                    if(value !=null &&value.length>0)
                    {
                        switch (rule)
                        {
                            case "email":
                            {
                                var re =new RegExp("^([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\\_|\\.]?)*[a-zA-Z0-9]+\\.[a-zA-Z]{2,3}$");
                                if(!re.test(value))
                                {
                                    return message;
                                }
                                break;
                            }
                            case "url":
                            case "ip":
                            {
                                 var re =new RegExp("^(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})$");
                                debugger
                                if(!re.test(value))
                                {
                                    return message;
                                }
                                break;
                            }
                            case "date":
@ -1053,19 +1078,14 @@
                            }
                            case "digits":
                            {
                                break;
                            }
                            case "equalTo":
                            {
                                if(ruleValue=="") {
                                    break;
                                }
                                else if(ruleValue!=value) {
                                var re =new RegExp("^[0-9]*$");
                                if(!re.test(value))
                                {
                                    return message;
                                    break;
                                }
                                break;
                            }
                            case "extension"://请输入有效的后缀
                            {
                                break;
@ -1118,13 +1138,12 @@
        validate:function(){
            try {
                var me = this, option = this.options;
                me.flag = 100;//错误等级
                var suc = true;
                if(me.controls!=null)
                {
                if (me.controls != null) {
                    var data = me.getData();
                    for(var i=0;i<me.controls.length;i++)
                    {
                    for (var i = 0; i < me.controls.length; i++) {
                        var control = me.controls[i];
                        var name = control["name"];
@ -1132,59 +1151,139 @@
                        var message = control["message"];
                        var error = "";
                        if(rule!=null)
                        {
                        var terror = "";
                        if (rule != null) {
                            var value = data[name];
                            if(typeof(rule)=="string")
                            {
                                error = me.validateRule(rule,true,value);
                            if (typeof(rule) == "string") {
                                error = me.validateRule(rule, true, value);
                            }
                            else{
                                for(var o in rule)
                                {
                            else {
                                for (var o in rule) {
                                    var val = rule[o];
                                    //判断相等情况,以赋值替代val
                                    if(o=="equalTo")
                                    {debugger
                                        val=data[val];
                                    if (o == "equalTo") {
                                        val = data[val];
                                    }
                                    terror = me.validateRule(o, val, value);
                                    if (terror.length > 0) {
                                    var re = me.validateRule(o,val,value);
                                    if(error.length>0)
                                    {
                                        error += ";"+re;
                                        if (o == "required") {
                                            me.flag = 1;
                                            error = terror;
                                        }
                                        else if (o == "minlength") {
                                            if (me.flag > 2) {
                                                me.flag = 2;
                                                error = terror;
                                            }
                                        }
                                        else if (o == "maxlength") {
                                            if (me.flag > 3) {
                                                me.flag = 3;
                                                error = terror;
                                            }
                                        }
                                        //判断相等情况,以赋值替代val
                                        else if (o == "equalTo") {
                                            if (me.flag > 4) {
                                                me.flag = 4;
                                                error = terror;
                                            }
                                        }
                                        else if (o == "digits") {
                                            if (me.flag > 5) {
                                                me.flag = 5;
                                                error = terror;
                                            }
                                        }
                                        else if (o == "email") {
                                            if (me.flag > 6) {
                                                me.flag = 6;
                                                error = terror;
                                            }
                                        }
                                        else if (o == "ip") {
                                            if (me.flag > 7) {
                                                me.flag = 7;
                                                error = terror;
                                            }
                                        }
                                        //error += ";"+re;
                                    }
                                    else{
                                        error = re;
                                    else {
                                    }
                                }
                            }
                        }
                        //是否报错
                        if(error.length>0)
                        {
                            if(error=="必填项;") {
                                me.showError(control, "必填项");//必填项优先级高
                        if (error.length > 0) {
                            if (typeof(message) == "string")
                                error = message;//用户自定义消息覆盖默认消息
                            else {
                                for (var m in message) {
                                    var value = message[m];
                                    if (m == "required" && me.flag == 1) {
                                        error = value;
                                    }
                                    else if (m == "minlength" && me.flag == 2) {
                                        error = value;
                                    }
                                    else if (m == "maxlength" && me.flag == 3) {
                                        error = value;
                                    }
                                    //判断相等情况,以赋值替代val
                                    else if (m == "equalTo" && me.flag == 4) {
                                        error = value;
                                    }
                                    else if (m == "digits" && me.flag == 5) {
                                        error = value;
                                    }
                                    else if (m == "email" && me.flag == 6) {
                                        error = value;
                                    }
                                    else if (m == "ip" && me.flag == 7) {
                                        error = value;
                                    }
                                }
                            }
                            else if(message!=null && message.length > 0)
                            {
                                me.showError(control,message);
                            if (me.flag == 1) {
                                me.showError(control, error);//required优先级高
                            }
                            else{
                                me.showError(control,error);
                            else if (me.flag == 2) {
                                me.showError(control, error);//
                            }
                            else if (me.flag == 3) {
                                me.showError(control, error);//
                            }
                            else if (me.flag == 4) {
                                me.showError(control, error);//
                            }
                            else if (me.flag == 5) {
                                me.showError(control, error);//
                            }
                            else if (me.flag == 6) {
                                me.showError(control, error);//
                            }
                            else if (me.flag == 7) {
                                me.showError(control, error);//
                            }
                            //else  if(message!=null && message.length > 0){
                            // me.showError(control,message);
                            // }
                            suc = false;
                        }
                        else{
                    else
                        {
                            me.clearError(control);
                        }
                    }
                    return suc;
                }
                return suc;
            }
            catch(e)
            {