JavaScript 身份证格式验证

isCard(id) {
    const province = {
      '11': '北京',
      '12': '天津',
      '13': '河北',
      '14': '山西',
      '15': '内蒙古',
      '21': '辽宁',
      '22': '吉林',
      '23': '黑龙江',
      '31': '上海',
      '32': '江苏',
      '33': '浙江',
      '34': '安徽',
      '35': '福建',
      '36': '江西',
      '37': '山东',
      '41': '河南',
      '42': '湖北',
      '43': '湖南',
      '44': '广东',
      '45': '广西',
      '46': '海南',
      '50': '重庆',
      '51': '四川',
      '52': '贵州',
      '53': '云南',
      '54': '西藏',
      '61': '陕西',
      '62': '甘肃',
      '63': '青海',
      '64': '宁夏',
      '65': '新疆',
      '71': '台湾',
      '81': '香港',
      '82': '澳门',
      '91': '国外'
    }
    let iSum = 0
    if (!/^\d{17}(\d|x)$/i.test(id)) return false
    id = id.replace(/x$/i, 'a')
    const provinceCode = id.substr(0, 2)
    if (!province[provinceCode]) return false
    for (let i = 17; i >= 0; i--) {
      iSum += (Math.pow(2, i) % 11) * parseInt(id.charAt(17 - i), 11)
    }
    if (iSum % 11 != 1) return false
    return true
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值