【史上最全】分享几个超常用的表单校验函数

165 阅读1分钟

写在前面:

上一篇教大家写了如何封装全局校验js,使得校验函数可以全局复用,本文将分享几个常用的校验函数

1.手机号验证

/**
     * mobile 传入手机号/座机号
     * @param {String} mobile 
     * @returns {boolean}
     */
    checkPhone(mobile) {
        var tel = /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/;
        var phone = /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[0-35-9]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|6[2567]\d{2}|4(?:(?:10|4[01])\d{3}|[68]\d{4}|[579]\d{2}))\d{6}$/;
        // 校验手机号
        if (phone.test(mobile)) {
            console.log(mobile);
            return true;
        }
        // 校验座机号
        if (tel.test(mobile)) {
            console.log(mobile);
            return true;
        }
        return false
    },

2.校验字符串长度

 /**
     * 
     * @param {
     *   obj {
     *      str: String | 要校验的字符串
     *      minNum: number | 最小长度,默认为0
     *      maxNum: number | 最长长度
     *      removeSpace: boolean | 是否去除首尾空格,默认去除
     *   }
     * }
     * @returns {boolean} 
     */
    checkStringLength(obj) {
        var {
            str,
            minNum = 0,
            maxNum,
            removeSpace = true
        } = obj
        if (removeSpace) {
            if (str.trim().length >= minNum) {
                if (maxNum || maxNum === 0) {
                    return str.trim().length <= maxNum
                }
                return true
            }
            return false
        } else {
            if (str.length >= minNum) {
                if (maxNum || maxNum === 0) {
                    return str.length <= maxNum
                }
                return true
            }
            return false
        }
    },

3.验证字符串是否包含小写字母

  /**
     * 验证字符串是否包含小写字母
     * @param {string} str
     * @returns {Boolean}
     */
    validLowerCase(str) {
        const reg = /^[a-z]+$/
        return reg.test(str)
    },

4.验证字符串是否包含大写字母

 /**
     * 验证字符串是否包含大写字母
     * @param {string} str
     * @returns {Boolean}
     */
    validUpperCase(str) {
        const reg = /^[A-Z]+$/
        return reg.test(str)
    },

5.验证字符串是否包含字符

   /**
     * 验证字符串是否包含字符
     * @param {string} str
     * @returns {Boolean}
     */
    validAlphabets(str) {
        const reg = /^[A-Za-z]+$/
        return reg.test(str)
    },

6.验证邮箱

 /**
     * 验证邮箱
     * @param {string} email
     * @returns {Boolean}
     */
    validEmail(email) {
        const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
        return reg.test(email)
    },

7.验证str是否是字符串

  /**
     * 验证str是否是字符串
     * @param {string} str
     * @returns {Boolean}
     */
    isString(str) {
        if (typeof str === 'string' || str instanceof String) {
            return true
        }
        return false
    },

8.验证身份证号码

    /**
 * 校验身份证号码
 * @param {string} idCard 身份证号码
 * @returns {boolean} 校验结果
 */
    checkIdCard(idCard) {
        // console.log('开始校验辣')
        const reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
        return reg.test(idCard);
    }
}