js-纳税人识别码验证



(具体脚本方法参考网上综合所得)

//(15位包括地区编码6位+组织机构代码9位)
   var taxpayerId = $("#taxpayerId").val();
   //纳税人识别号校验是否合法
   if($.trim(taxpayerId) == ''){
    alert("请输入纳税人识别号 !");
    return;
   }else if($.trim(taxpayerId) != ''){
     var addressCode = taxpayerId.substring(0,6);
     // 校验地址码
     var check = checkAddressCode(addressCode);
     if(!check) {
      alert("请输入正确的纳税人识别号 (地址码)!");
      return;
     }else{
      // 校验组织机构代码
      var orgCode = taxpayerId.substring(6,9);
      check = orgcodevalidate(orgCode);
      if(!check){
       alert("请输入正确的纳税人识别号(组织机构代码) !");
       return;
         }
     }
   }

// 校验组织机构代码
  function orgcodevalidate(value){
    if(value!=""){
     var part1=value.substring(0,8);
     var part2=value.substring(value.length-1,1);
     var ws = [3, 7, 9, 10, 5, 8, 4, 2];
     var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     var reg = /^([0-9A-Z]){8}$/;
     if (!reg.test(part1))
     {
      return true
     }
     var sum = 0;
     for (var i = 0; i< 8; i++)
     {
      sum += str.indexOf(part1.charAt(i)) * ws[i];
     }
     var C9 = 11 - (sum % 11);
     var YC9=part2+'';
     if (C9 == 11) {
      C9 = '0';
     } else if (C9 == 10) {
      C9 = 'X' ;
     } else {
      C9 = C9+'';
     }
     return YC9!=C9;
   }
  }
  
  
  // 校验地址码
  function checkAddressCode(addressCode){
      var provinceAndCitys={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:"国外"};
      var check = /^[1-9]\d{5}$/.test(addressCode);
      if(!check) return false;
      if(provinceAndCitys[parseInt(addressCode.substring(0,2))]){
        return true;
      }else{
        return false;
      }
      
  }


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值