身份证校验

function checkIDCard(idcode) {  // 加权因子  var weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]  // 校验码  var check_code = ['1', '0', 'X', 'x', '9', '8', '7', '6', '5', '4', '3', '2']  var code = idcode + ''  var last = idcode[17] // 最初一位  var seventeen = code.substring(0, 17)  // ISO 7064:1983.MOD 11-2  // 判断最初一位校验码是否正确  var arr = seventeen.split('')  var len = arr.length  var num = 0  for (var i = 0; i < len; i++) {    num = num + arr[i] * weight_factor[i]  }  // 获取余数  var resisue = num % 11  var last_no = check_code[resisue]  // 格局的正则  // 正则思路  /*    第一位不可能是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 last === last_no && format ? true : false;  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': '國民身分證統一編號不正確'    }  }  if (sex != 1 && sex != 2) {    return {      'respCode': '1',      'respDesc': '國民身分證統一編號不正確'    }  }  if (!regEng.test(eng)) {    return {      'respCode': '1',      'respDesc': '國民身分證統一編號不正確'    }  }  // var key=[‘A’,’B’,’C’,’D’,’E’,’F’,’G’,’H’,’J’,’K’,’L’,’M’,’N’,’P’,’Q’,’R’,’S’,’T’,’U’,’V’,’X’,’Y’,’W’,’Z’,’I’,’O’];  var key = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'  var value = ['10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26',    '27', '28', '29', '30', '31', '32', '33', '34', '35'  ]  var pos = key.indexOf(eng)  if (pos == -1) {    return {      'respCode': '1',      'respDesc': '國民身分證統一編號不正確'    }  }  var x1 = value[pos].substring(0, 1)  var x2 = value[pos].substring(1, 2)  var y = parseInt(x1) + 9 * parseInt(x2) + 8 * parseInt(num.substring(0, 1)) + 7 * parseInt(num.substring(1, 2)) + 6 *        parseInt(num.substring(2, 3)) + 5 * parseInt(num.substring(3, 4)) + 4 * parseInt(num.substring(4, 5)) + 3 * parseInt(    num.substring(5, 6)) + 2 * parseInt(num.substring(6, 7)) + parseInt(num.substring(7, 8))  var checkResult = y % 10  if ((10 - checkResult) == num.substring(8, 9)) {    return {      'respCode': '0',      'respDesc': 'success'    }  } else {    if (checkResult == 10 && num.substring(8, 9) == 0) {      // 若取余之后的后果为0,那么开端的数为0      return {        'respCode': '0',        'respDesc': 'success'      }    } else {      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': '校验通过'    }  }}