easyui 添加自定义检查操作

需求:input 输入框不能为空、且只能包含中文、英文、数字、特殊字符

实现方式:给制定input添加自定义校验

校验js

validateEmpty.js

$(function () {
    $.extend($.fn.validatebox.defaults.rules, {
        //校验正整数,并计算码洋
        calculateEmpty:{
            validator : function(value) {
                //正则表达式
                var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?+-_]+$");
                if(reg.test(value.trim())) {
                    return true;
                }
                return false;
            },
            message : '输入值不能为空和包含其他非法字符'
        }
    });
});

emoji和空格校验

$(function () {
    $.extend($.fn.validatebox.defaults.rules, {
        //校验正整数,并计算码洋
        isBlank: {
            validator: function (value, param) { return $.trim(value) != '' },
            message: '该输入项为必填项'
        },
        isEmoji:{
            validator: function (value, param) {
                return !isEmoji(value);
            },
            message: '该输入正确的字符'
        }
    });
});


function isEmoji(substring) {
    for ( var i = 0; i < substring.length; i++) {
        var hs = substring.charCodeAt(i);
        if (0xd800 <= hs && hs <= 0xdbff) {
            if (substring.length > 1) {
                var ls = substring.charCodeAt(i + 1);
                var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
                if (0x1d000 <= uc && uc <= 0x1f77f) {
                    return true;
                }
            }
        } else if (substring.length > 1) {
            var ls = substring.charCodeAt(i + 1);
            if (ls == 0x20e3) {
                return true;
            }
        } else {
            if (0x2100 <= hs && hs <= 0x27ff) {
                return true;
            } else if (0x2B05 <= hs && hs <= 0x2b07) {
                return true;
            } else if (0x2934 <= hs && hs <= 0x2935) {
                return true;
            } else if (0x3297 <= hs && hs <= 0x3299) {
                return true;
            } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
                || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
                || hs == 0x2b50) {
                return true;
            }
        }
    }
}

使用方式:

data-options=”validType:’calculateEmpty’”


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Validate Testtitle>
    <script type="text/javascript" src="/js/validateEmpty.js">script>
head>
<body>
<input type="text" name="className" id="className" class="easyui-textbox" style="height: 23px" data-options="validType:'calculateEmpty',prompt:'类名称',required:true"/>
body>
html>

常用的校验

$.extend($.fn.validatebox.defaults.rules, {
    // 固话验证
    tel: {
        validator: function (value) {
            if (value) {
                return /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/
                    .test(value);
            } else {
                return true;
            }
        },
        message: '电话号码格式错误'
    },
    //中文或英文验证
    CHS: {
        validator: function (value) {
            return /^[A-Za-z\u4e00-\u9fa5.·]+$/.test(value);
        },
        message: '请输入汉字或者字母'
    },
    //车牌号验证
    CAR: {
        validator: function (value) {
            return /^[A-Za-z\u4e00-\u9fa50-9]+$/.test(value);
        },
        message: '请输入正确的车牌号'
    },
    mobileAndTel:{
        validator: function (value) {
            var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
            var isMob = /^1[3|5|8|7|4][0-9]\d{8}$/;
            if (isMob.test(value) || isPhone.test(value)) {
                return true;
            } else {
                return false;
            }
        },
        message: '请输入手机号或固定电话'
    },
    //中文验证
    chinese: {
        validator: function (value) {
            return /^[\u4e00-\u9fa5]+$/.test(value);
        },
        message: '请输入汉字'
    },
    chineseAndNumber: {
        validator: function (value) {
            return /^[a-zA-Z0-9_\.]+$/.test(value);
        },
        message: '只能是数字跟字母'
    },
    //验证金额大于0
    moreThanZero: {
        validator: function (value, param) {
            return $(param[0]).val() > 0;
        },
        message: '请输入大于0的值.'
    },
    //验证值相等
    equals: {
        validator: function (value, param) {
            return value == $(param[0]).val();
        },
        message: '字段不相同.'
    },

    //身份证号验证
    idcard: {
        validator: function (value) {
            return /(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value);
        },
        message: '请输入正确的身份证号码'
    },

    // 验证空格
    space: {
        validator: function (value) {
            return /.*[^ ].*/.test(value);
        },
        message: '输入值不能全部为空'
    },
    unNormal : {// 验证是否包含空格和非法字符
        validator : function(value) {
            return !/[ @#\$%\^&\*]+/g.test(value);
        },
        message : '输入值不能为空和包含其他非法字符'
    },
    // 验证是否小于 3
    lessThanThree: {
        validator: function (param) {
            return param >= 3;
        },
        message: '此保险为缴费年限小于3,为无效险'
    },
    // 验证是否小于 6
    lessThanSix: {
        validator: function (param) {
            return param >= 6;
        },
        message: '此保险为生效时长小于6,为无效险'
    },
    // 验证是否小于 6
    lessThanFive: {
        validator: function (param) {
            return param >= 5;
        },
        message: '此保险为生效时长小于5,为无效险'
    },
    //手机号码验证
    mobile: {
        validator: function (value) {
            return /^1[3|5|8|7|4][0-9]\d{8}$/.test(value);
        },
        message: '手机号码不正确'
    },

    //邮编验证
    postCodeValidate: {
        validator: function (value) {
            return /^[0-9]{6}$/.test(value);
        },
        message: '请输入合法的邮编!'
    },
    //生活时长验证
    lifeYearsValidate: {
        validator: function (value) {
            return (value >= 0) && (value <= 70);
        },
        message: '请输入正确的生活时长!'
    },
    //区号验证
    areaCodeValidate: {
        validator: function (value) {
            return /^\d{3,4}$/.test(value);
        },
        message: '请输入正确的区号!'
    },
    //固定电话号码验证
    numberPhoneValidate: {
        validator: function (value) {
            return /^\d{7,8}$/.test(value);
        },
        message: '请输入正确的号码!'
    },
    //两次输入验证
    sameValidate: {
        validator: function (value, param) {
            return ('' + value).localeCompare($(param[0]).val()) == 0;
        },
        message: '两次输入证书号不匹配!'
    },
    //前后是否相同
    sameBank: {
        validator: function (value, param) {
            var realValue = $(param[0]).val();
            if (!realValue) {
                return true
            } else {
                return value !== realValue;
            }
        },
        message: '前后银行不能一致'
    },
    //非纯数字验证
    notOnlyNumberValidate: {
        validator: function (param) {
            return !/^\d+$/.test(param);
        },
        message: '不能输入纯数字!'
    },
    //不能包含数字验证
    notNumberValidate: {
        validator: function (value, param) {
            return !/\d+/g.test($(param[0]).val());
        },
        message: '不能包含数字!'
    },
    //纯数字验证
    onlyNumberValidate: {
        validator: function (value) {
            return /^\d+$/.test(value);
        },
        message: '请输入纯数字!'
    },
    //银行流水电话验证
    bankPhoneValidate: {
        validator: function (value) {
            if(value.length>11||value.length<5){
                return false;
            }
            return /^\d+$/.test(value);
        },
        message: '请输入正确的电话!'
    },
    //纯数字且字符数固定验证
    onlyNumberValidateAndCount: {
        validator: function (value, param) {
            $.fn.validatebox.defaults.rules.onlyNumberValidateAndCount.message = '请输入' + param[1] + '位纯数字';
            var va = $(param[0]).val();
            if (/^\d+$/.test(va)) {
                return ('' + va).length == param[1];
            }
            return false;
            message: '请输入 4 位纯数字!'
        },
        //进入现职单位时间验证
        enterCompanyValidate: {
            validator: function (value,param) {
                return Date.parse(value) < new Date().getTime();
            },
            message: '请输入今天以前的时间!'
        },
        //企业注册时间验证
        registrationTimeValidate: {
            validator: function (value) {
                $.messager.alert('提示消息', '请输入今天以前的时间!', 'warning');
                return Date.parse(value) < new Date().getTime();
            },
            message: '请输入今天以前的时间!'
        },
        md: {
            validator: function (value, param) {
                var startTime = $(param[0]).datetimebox('getValue');
                var d1 = $.fn.datebox.defaults.parser(startTime);
                var d2 = $.fn.datebox.defaults.parser(value);
                return d1 <= d2;
            },
            message: '结束时间必须大于开始时间!'
        },

        //手机号重复验证
        mobileRepeatValidate: {
            validator: function (value, param) {
                if (/^(13[0-9]|14[5|7]|15[0-9]|18[0-9]|17[0-9])\d{8}$/.test(value)) {
                    $.fn.validatebox.defaults.rules.mobileRepeatValidate.message = '手机号已存在!';
                    return '' + value != $(param[0]).val();
                } else {
                    $.fn.validatebox.defaults.rules.mobileRepeatValidate.message = '手机号码不正确';
                    return false;
                }
            }
        },
        message: ''
    },
    //联系电话验证
    contactValidate: {
        validator: function (value) {
            return /^\d+-?\d+-?\d+$/.test(value);
        },
        message: '请输入正确的格式'
    },
    //身份证号验证
    cardIdValidate: {
        validator: function (value) {
            if (/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value) && birthdayValid(value)) {
                return true;
            } else {
                return false;
            }
        },
        message: '请输入正确18位身份证号码'
    },
    // 最大长度验证
    maxLength: {
        validator: function (value, param) {
            return param[0] >= value.length;
        },
        message: '最大长度不能大于{0}.'
    },
    // 最小长度验证
    minLength: {
        validator: function (value, param) {
            return value.length >= param[0];
        },
        message: '最小长度不能小于{0}.'
    },
    // 长度区间验证
    length: {
        validator: function (value, param) {
            return value.length >= param[0] && param[1] >= value.length;
        },
        message: '长度范围{0}-{1}.'
    },
    //股份比例验证
    sharesValidate: {
        validator: function (value) {
            return (value >= 0) && (value <= 100);
        },
        message: '请输入正确的股份比例'
    },

    //签约降额
    signReduceAmountValidate: {
        validator: function (value, param) {
            var v = new Number(value);
            var p = new Number(param[0]);
            if ((p - v) % 1000 != 0) {
                return false;
            } else {
                return true;
            }
        },
        message: '调整单位为1000元!'
    },
    //确认银行卡号
    equalTo: {
        validator: function (value, param) {
            return $(param[0]).val() == value;
        },
        message: '您两次输入的银行卡号不一致'
    },
    //主副卡是否相等
    isEqual: {
        validator: function (value, param) {
            if (!$(param[0]).val()) {
                return true;
            } else {
                return $(param[0]).val() != value;
            }
        },
        message: '主卡银行卡号与副卡银行卡号不能相同!'
    },

    //原银行卡是否相等
    isEqualTwo: {
        validator: function (value, param) {
            if (!$(param[0]).val()) {
                return true;
            } else {
                return $(param[0]).val() != value;
            }
        },
        message: '现银行卡号不能与原银行卡号相同!'
    },


    //和当前时间比较
    compareDate: {
        validator: function (value) {
            var $result = DateUtil.compare(value, DateUtil.format(new Date(), 'yyyy-MM-dd'));
            return $result !== 1;
        },
        message: '不能选择小于当前日期的还款日!'
    },
    //小于当前时间
    lessThanToday: {
        validator: function (value) {
            var $result = DateUtil.compare(value, DateUtil.format(new Date(), 'yyyy-MM-dd'));
            return $result === 1;
        },
        message: '选择时间应早于当前时间'
    },
    // 大于当前时间
    moreThanToday: {
        validator: function (value) {
            var $result = DateUtil.compare(value, DateUtil.format(new Date(), 'yyyy-MM-dd'));
            return $result !== 1;
        },
        message: '选择时间应晚于当前时间'
    },

    //金额比较
    repayAccount: {
        validator: function (value, param) {
           var $value= parseFloat(value.replace(/[^\d\.-]/g, ""));
            return param[0] >= $value && $value>0;
        },
        message: '请输入大于0或者小于等于剩余服务费金额'
    },
    /*必须和某个字段相等*/
    equalTo: {
        validator:function(value,param){
            return $(param[0]).val() == value;
        },
        message:'字段不匹配'
    }
});

你可能感兴趣的:(10_jquery,11_js)