证件照正则验证总结

140 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

/**
 * 验证身份证号
 * @param {String|Number} value 要验证的字符串或数值
 */
export const isIdCard = value => {
    var idcardReg = /^[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{3}([0-9]|X)$/;
    if (idcardReg.test(value)) {
        return true
    } else {
        return false
    }
}
 
/**
 * 验证港澳身份证号
 * @param {String|Number} value 要验证的字符串或数值
 */
// 规则: H/M + 10位或6位数字
// 样本: H1234567890
export const isHKCard = value => {
 var isHKcardReg = /^([A-Z]\d{6,10}(\(\w{1}\))?)$/;
    if (isHKcardReg.test(value)) {
        return true
    } else {
        return false
    }
}
 
/**
 * 验证台湾身份证号
 * @param {String|Number} value 要验证的字符串或数值
 */
// 规则: 新版8位或18位数字, 旧版10位数字 + 英文字母
// 样本: 12345678 或 1234567890B
export const isTWCard = value => {
    var isTWcardReg = /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/;
    if (isTWcardReg.test(value)) {
        return true
    } else {
        return false
    }
}
 
/**
 * 验证护照号
 * @param {String|Number} value 要验证的字符串或数值
 */
// 规则: 14/15开头 + 7位数字, G + 8位数字, P + 7位数字, S/D + 7或8位数字,等
// 样本: 141234567, G12345678, P1234567
export const isPassPortCard = value => {
    var isPasscardReg = /^([a-zA-z]|[0-9]){5,17}$/;
    if (isPasscardReg.test(value)) {
        return true
    } else {
        return false
    }
}
 
/**
 * 验证军官号
 * @param {String|Number} value 要验证的字符串或数值
 */
    // 规则: 军/兵/士/文/职/广/(其他中文) + "字第" + 4到8位字母或数字 + "号"
    // 样本: 军字第2001988号, 士字第P011816X号
export const isOfficerCard = value => {
    var isOfficercardReg = /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/;
    if (isOfficercardReg.test(value)) {
        return true
    } else {
        return false
    }
}