Js 之正則驗證手機號、QQ、身份證等


// 常見的 正則表達式 校驗
// QQ號、手機號、Email、是否是數字、去掉前后空格、是否存在中文、郵編、身份證、URL、日期格式、IP
let myRegExp = {
    // 檢查字符串是否為合法QQ號碼
    isQQ: function (str) {
        // 1 首位不能是0 ^[1-9]
        // 2 必須是 [5, 11] 位的數字 \d{4, 9}
        let reg = /^[1-9][0-9]{4,9}$/gim;
        if (reg.test(str)) {
            console.log('QQ號碼格式輸入正確');
            return true;
        } else {
            console.log('請輸入正確格式的QQ號碼');
            return false;
        }
    },
    // 檢查字符串是否為合法手機號碼
    isPhone: function (str) {
        let reg = /^(0|86|17951)?(13[0-9]|15[012356789]|18[0-9]|14[57]|17[678])[0-9]{8}$/;
        if (reg.test(str)) {
            console.log('手機號碼格式輸入正確');
            return true;
        } else {
            console.log('請輸入正確格式的手機號碼');
            return false;
        }
    },
    // 檢查字符串是否為合法Email地址
    isEmail: function (str) {
        let reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
        if (reg.test(str)) {
            console.log('Email格式輸入正確');
            return true;
        } else {
            console.log('請輸入正確格式的Email');
            return false;
        }
    },
    // 檢查字符串是否是數字
    isNumber: function (str) {
        let reg = /^\d+$/;
        if (reg.test(str)) {
            console.log(str + '是數字');
            return true;
        } else {
            console.log(str + '不是數字');
            return false;
        }
    },
    // 去掉前后空格
    trim: function (str) {
        let reg = /^\s+|\s+$/g;
        return str.replace(reg, '');
    },
    // 檢查字符串是否存在中文
    isChinese: function (str) {
        let reg = /[\u4e00-\u9fa5]/gm;
        if (reg.test(str)) {
            console.log(str + ' 中存在中文');
            return true;
        } else {
            console.log(str + ' 中不存在中文');
            return false;
        }
    },
    // 檢查字符串是否為合法郵政編碼
    isPostcode: function (str) {
        // 起始數字不能為0,然后是5個數字 [1-9]\d{5}
        let reg = /^[1-9]\d{5}$/g;
        if (reg.test(str)) {
            console.log(str + ' 是合法的郵編格式');
            return true;
        } else {
            console.log(str + ' 是不合法的郵編格式');
            return false;
        }
    },
    // 檢查字符串是否為合法身份證號碼
    isIDcard: function (str) {
        let reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
        if (reg.test(str)) {
            console.log(str + ' 是合法的身份證號碼');
            return true;
        } else {
            console.log(str + ' 是不合法的身份證號碼');
            return false;
        }
    },
    // 檢查字符串是否為合法URL
    isURL: function (str) {
        let reg = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;
        if (reg.test(str)) {
            console.log(str + ' 是合法的URL');
            return true;
        } else {
            console.log(str + ' 是不合法的URL');
            return false;
        }
    },
    // 檢查字符串是否為合法日期格式 yyyy-mm-dd
    isDate: function (str) {
        let reg = /^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/;
        if (reg.test(str)) {
            console.log(str + ' 是合法的日期格式');
            return true;
        } else {
            console.log(str + ' 是不合法的日期格式,yyyy-mm-dd');
            return false;
        }
    },
    // 檢查字符串是否為合法IP地址
    isIP: function (str) {
        // 1.1.1.1 四段 [0 , 255]
        // 第一段不能為0
        // 每個段不能以0開頭
        //
        // 本機IP: 58.50.120.18 湖北省荊州市 電信
        let reg = /^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/gi;
        if (reg.test(str)) {
            console.log(str + ' 是合法的IP地址');
            return true;
        } else {
            console.log(str + ' 是不合法的IP地址');
            return false;
        }
    }
};


免責聲明!

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



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