Java 银行卡号、身份证号、手机号和统一社会信用代码校验正则

1,184 阅读1分钟
  • 银行卡号

public boolean isBankCardValid(String cardNo) {
   if (StrUtil.isBlank(cardNo)) {
      return false;
   }
   int[] cardNoArr = new int[cardNo.length()];
   for (int i = 0; i < cardNo.length(); i++) {
      cardNoArr[i] = Integer.parseInt(String.valueOf(cardNo.charAt(i)));
   }
   for (int i = cardNoArr.length - 2; i >= 0; i -= 2) {
      cardNoArr[i] <<= 1;
      cardNoArr[i] = cardNoArr[i] / 10 + cardNoArr[i] % 10;
   }
   int sum = 0;
   for (int i = 0; i < cardNoArr.length; i++) {
      sum += cardNoArr[i];
   }
   return sum % 10 == 0;
}
  • 身份证号 正则表达式

(^[1-9]\d{5}(19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$)
  • 手机号

^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$

手机号验证最全网址 blog.csdn.net/itbrand/art…

  • 统一社会信用代码

^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$