本文已参与「新人创作礼」活动,一起开启掘金创作之路。
/**
* 验证身份证号
* @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
}
}