rulejs正则验证记录

项目elementUI表单验证,需要统一验证下共有的,就加了个rulejs做个记录,有需要的小伙伴考可以参考下

直接贴代码吧,标红的部分就是相应的正则

    // 长度
    function checkValNumLengths (rule, value, callback) {
        if(value){
            if(value.length>rule.length){
                callback(new Error('最多'+rule.length+'个字'))
            }else{
                callback()
            }
        }else{
            callback()
        }
    }
    //  0~180间,6位小数 经度
    function checkMapXNum10 (rule, value, callback) {
        var reg =/^(\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|0\.0{0,6}|180)$/
        if(value){
            if(value.length>rule.length){
                callback(new Error('0~180间的数字,最多6位小数'))
            }else{
                if(!reg.test(value)){
                    callback(new Error('0~180间的数字,最多6位小数'))
                }else{
                    callback()
                }
            }
        }else if(value !== 0){
            callback()
        }else{
            callback(new Error('0~180间的数字,最多6位小数'))
        }
    }
    //  0~90间,6位小数 纬度
    function checkMapYNum10 (rule, value, callback) {
        var reg =/^(\+)?([0-8]?\d{1}\.\d{0,6}|0\.0{0,6}|[0-8]?\d{1}|90)$/
        if(value){
            if(value.length>rule.length){
                callback(new Error('0~90间的数字,最多6位小数'))
            }else{
                if(!reg.test(value)){
                    callback(new Error('0~90间的数字,最多6位小数'))
                }else{
                    callback()
                }
            }
        }else if(value !== 0){
            callback()
        }else{
            callback(new Error('0~90间的数字,最多6位小数'))
        }
    }
    // 0~999999999间,2位小数
    function checkValDecimalNum9S9 (rule, value, callback) {
        var reg =/^([1-9]\d{0,8})([.]\d{1,2})?$|^0[.]([1-9]\d{0,1}|[0-9][1-9])$/
        if(value){
            if(value.length>rule.length){
                callback(new Error('0~999999999间的数字,最多2位小数'))
            }else{
                if(value>999999999 || !reg.test(value)){
                    callback(new Error('0~999999999间的数字,最多2位小数'))
                }else{
                    callback()
                }
            }
        }else{
            callback()
        }
    }
    // 0~999999999间,整数
    function checkValIntegerNum9S9 (rule, value, callback) {
        var reg =/^([1-9]\d{0,8})?$|^0$/
        if(value){
            if(!reg.test(value)){
                callback(new Error('请输入0~999999999间的整数数字'))
            }else{
                callback()
            }
        }else{
            console.log(value)
            callback()
        }
    }

    // 0~100、2位小数
    function checkValDecimalNum100 (rule, value, callback) {
        var reg =/^(100)$|^((\d|[1-9]\d)(\.\d{1,2})?)$/
        if(value){
            if(value.length>rule.length){
                callback(new Error('请输入0~100间的数字,最多2位小数'))
            }else{
                if(!reg.test(value)){
                    callback(new Error('请输入0~100间的数字,最多2位小数'))
                }else{
                    callback()
                }
            }
        }else{
            callback()
        }
    }// 正整数字
    function validatorNum (rule, value, callback){
        var verificationRule =/^([1-9]\d*|[0]{1,1})$/;
        if(value){
            if(rule.length&&value.length>rule.length){
                callback(new Error('最长'+rule.length+'位数字'))
            }else if(verificationRule.test(value)){
                callback()
            }else if(!verificationRule.test(value)){
                callback(new Error('输入格式错误'))
            }
        }else{
            callback()
        }
    }
    // 整数字(包含负整数)
    function validatorIntegralNum (rule, value, callback){
        var verificationRule =/^(0|[1-9][0-9]*|-[1-9][0-9]*)$/;
        if(value){
            if(rule.length&&value.length>rule.length){
                callback(new Error('最长'+rule.length+'位数字'))
            }else if(verificationRule.test(value)){
                callback()
            }else if(!verificationRule.test(value)){
                callback(new Error('输入格式错误'))
            }
        }else{
            callback()
        }
    }
posted @ 2020-09-23 15:09  涵三点  阅读(747)  评论(0编辑  收藏  举报