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()
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM