身份证校验
function checkIDCard(idcode) { // 正则思路 /* 第一位不可能是0 第二位到第六位可以是0-9 第七位到第十位是年份,所以七八位为19或者20 十一位和十二位是月份,这两位是01-12之间的数值 十三位和十四位是日期,是从01-31之间的数值 十五,十六,十七都是数字0-9 十八位可能是数字0-9,也可能是X */ var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X]|[x])$/ // 判断格式是否正确 var format = idcard_patter.test(idcode) return !!format }
手机号码校验
function checkPhone(phone) { if (!(/^1[3456789]\d{9}$/.test(phone))) { return false } else { return true } }
校验军官证
function isOfficerCard(card) { // 规则: 军/兵/士/文/职/广/(其他中文) + "字第" + 4到8位字母或数字 + "号" // 样本: 军字第2001988号, 士字第P011816X号 var reg = /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/ if (reg.test(card) === false) { return { 'status': 0, 'msg': '军官证号不合规' } } else { return { 'status': 1, 'msg': '校验通过' } } }
护照
function isPassPortCard(card) { // 规则: 14/15开头 + 7位数字, G + 8位数字, P + 7位数字, S/D + 7或8位数字,等 // 样本: 141234567, G12345678, P1234567 var reg = /^([a-zA-z]|[0-9]){5,17}$/ if (reg.test(card) === false) { return { 'status': 0, 'msg': '护照号码不合规' } } else { return { 'status': 1, 'msg': '校验通过' } } }
港澳居民来往内地通行证
function isHKCard(card) { // 规则: H/M + 10位或6位数字 // 样本: H1234567890 var reg = /^([A-Z]\d{6,10}(\(\w{1}\))?)$/ if (reg.test(card) === false) { return { 'status': 0, 'msg': '港澳居民来往内地通行证号码不合规' } } else { return { 'status': 1, 'msg': '校验通过' } } }
台湾身份证
function checkTWIdCard(idNo) { if (idNo == null || idNo == '') { return { 'respCode': '9', 'respDesc': '空值' } } if (idNo.length != 10) { return { 'respCode': '1', 'respDesc': '國民身分證統一編號長度不正確(10)' } } var eng = idNo.substring(0, 1) var num = idNo.substring(1, 10) var sex = idNo.substring(1, 2) eng = eng.toUpperCase() var regNum = /^[0-9]+.?[0-9]*/ // 判断字符串是否为数字//判断正整数/[1−9]+[0−9]∗]∗/;//判断字符串是否为数字//判断正整数/[1−9]+[0−9]∗]∗/ var regEng = /^[A-Za-z]+$/ if (!regNum.test(num)) { return { 'respCode': '1', 'respDesc': '國民身分證統一編號不正確' } }
台湾居民来往大陆通行证
function isTWCard(card) { // 规则: 新版8位或18位数字, 旧版10位数字 + 英文字母 // 样本: 12345678 或 1234567890B var reg = /^\d{8}|^[a-zA-Z0-9]{10}|^\d{18}$/ if (reg.test(card) === false) { return { 'status': 0, 'msg': '台湾居民来往大陆通行证号码不合规' } } else { return { 'status': 1, 'msg': '校验通过' } } }