custom-1.0.0.js 7.48 KB
define('base/1.0.0/unit/validate/custom-1.0.0',
    ['base/1.0.0/unit/validate/validate-1.0.0'],
    function(require, exports, module) {

    require('base/1.0.0/ui/validate/validate-1.0.0');
    /*
     * 错误提示位置调整
     */
    $.validator.setDefaults({
        highlight: function(element) {
            if ($(element).closest('.form-group').length) {
                $(element).closest('.form-group').addClass('has-error');
            }
            else {
                $(element).parent().addClass('has-error');
            }
        },
        unhighlight: function(element) {
            if ($(element).closest('.form-group').length) {
                $(element).closest('.form-group').removeClass('has-error');
            }
            else {
                $(element).parent().removeClass('has-error');
            }
        },
        errorElement: 'span',
        errorClass: 'help-block',
        errorPlacement: function(error, element) {
            error.appendTo(element.parent());
        }
    });

    /*
     * 汉化
     */
    jQuery.extend(jQuery.validator.messages, {
        required: "请输入该字段",
        remote: "请修正该字段",
        email: "请输入正确格式的电子邮件",
        url: "请输入合法的网址",
        date: "请输入合法的日期",
        dateISO: "请输入合法的日期 (ISO).",
        number: "请输入合法的数字",
        digits: "只能输入整数",
        creditcard: "请输入合法的信用卡号",
        equalTo: "请再次输入相同的值",
        accept: "请输入拥有合法后缀名的字符串",
        maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
        minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
        rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
        range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
        max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
        min: jQuery.validator.format("请输入一个最小为 {0} 的值")
    });

    /*
     * 扩展验证规则
     */
    jQuery.validator.addMethod("isZipCode", function(value, element) {
        var pattern = /^[0-9]{6}$/;
        return this.optional(element) || (pattern.test(value));
    }, "请正确填写您的邮政编码");
    //匹配由26个英文字母组成的字符串
    jQuery.validator.addMethod("isLetter", function(value, element) {
        var pattern = new RegExp("^[A-Za-z]+$");
        return this.optional(element) || (pattern.test(value));
    },"请填写只由英文组成的字符串");
    // 手机号码验证
    jQuery.validator.addMethod("isMobile", function(value, element) {
        var length = value.length;
        var mobile = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
        return this.optional(element) || (length == 11 && mobile.test(value));
    }, "请正确填写您的手机号码");

    // 电话号码验证  电话号码格式010-12345678
    jQuery.validator.addMethod("isTel", function(value, element) {
        var tel = /^(\d{3,4}-)?\d{7,9}$/;
        return this.optional(element) || (tel.test(value));
    }, "请正确填写您的电话号码");
    // 京东通用电话号码格式验证
    jQuery.validator.addMethod("isJdTel", function(value, element) {
        var tel = /^[0-9\-()()]{7,18}$/;
        return this.optional(element) || (tel.test(value));
    }, "请正确填写您的电话号码");
    // 联系电话(手机/电话皆可)验证
    jQuery.validator.addMethod("isPhone", 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}$/;
        return this.optional(element) || (tel.test(value) || mobile.test(value));

    }, "请正确填写您的联系电话");
    //验证括中文字、英文字母、数字和下划线
    jQuery.validator.addMethod("stringCheck", function(value, element) {
        return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
    }, "只能包括中文字、英文字母、数字和下划线");
    //验证金额 小数点后面可以跟0到2位
    jQuery.validator.addMethod("moneyCheck", function(value, element) {
        return this.optional(element) || /^([1-9]\d{0,8}|0)(\.\d{1,2})?$/.test(value);
    }, "金额格式错误");
    //验证金额不能大于999999999.00
    jQuery.validator.addMethod("maxPriceCheck",function(value,element){
        var maxPrice=999999999.00;
        var currentPrice= parseFloat(value);
        if(currentPrice > maxPrice){
            return false;
        }
        if(currentPrice <= 0){
            return false;
        }
        return true;

    },"金额格式错误");

    //验证email
    jQuery.validator.addMethod("isMail", function(value, element) {
        return this.optional(element) || /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.)([a-zA-Z0-9_-])+$/.test(value);
    }, "只能包括英文字母、数字和下划线");
    //是有效地整数
    jQuery.validator.addMethod("isInt", function(value, element) {
        return this.optional(element) || /^([1-9][0-9]*)$|^0$/.test(value);
    }, "请输入有效整数");
    //验证整数
    jQuery.validator.addMethod("checkPriceNoFj", function(value, element) {
        var price = parseFloat(value);
        if(price>0 && price < 100){
            return true;
        }else{
            return this.optional(element) || /^([1-9][0-9]*)$|^0$/.test(value) || /^(?!0(\.0+)?$)([1-9][0-9]{0,9}|0)(\.[0]{1,3})?$/.test(value);
        }
    }, "金额只能是正整数");
    //是有大于零的效地整数
    jQuery.validator.addMethod("isMaxZeroInt", function(value, element) {
        return this.optional(element) || /^[1-9][0-9]*$/.test(value);
    }, "请输入大于零整数");
    //是有效地重量,小数点后三位 大于0
    jQuery.validator.addMethod("isWeight", function(value, element) {
        return this.optional(element) || /^(?!0(\.0+)?$)([1-9][0-9]{0,3}|0)(\.[0-9]{1,3})?$/.test(value);
    }, "请输入有效的重量");
    jQuery.validator.addMethod("maxWeightCheck", function(value, element) {
        var maxWeight = 9999.00;
        var currentWeight = parseFloat(value);
        if(currentWeight > maxWeight){
            return false;
        }
        return true;
    },"请输入有效的重量");
    //是有效地图片格式
    jQuery.validator.addMethod("isImg", function(value, file) {
        if(this.optional(file)){
            return true;
        }
        var i = file.value.lastIndexOf(".");
        if(i== -1){
            return false;
        }
        var ext = file.value.substring(i);
        var ext1 = ext.toLowerCase();
        if (file.value == "") {
            return false;

        } else { //jpg,jpeg,png,gif
            if (ext1 != ".jpg" && ext1 != ".jpeg" && ext1 != ".png")
            {
                return false;
            }
        }
        return true;
    }, "请输入有效的图片格式");


    jQuery.validator.addMethod("zh_CnLength",function(value,element,param){
        String.prototype.getBytes = function() {
            var cArr = this.match(/[^\x00-\xff]/ig);
            return this.length + (cArr == null ? 0 : cArr.length);
        }
        var length = jQuery.trim(value).getBytes();
        if(length>param){
            return false;
        }
        return true;
    },"请输入一个长度最多是 {0} 的字符串,一个中文算两个长度");

});