zoukankan      html  css  js  c++  java
  • Java正则验证

     1     /**
     2      * 验证手机号.
     3      * 
     4      * @param phone the phone
     5      * @return true, if successful
     6      */
     7     public static boolean isPhone(String phone){
     8         if(StringUtils.isBlank(phone)){
     9             return false;
    10         }
    11         String regex = "^[1][3,4,5,8][0-9]{9}$";
    12         Pattern p = Pattern.compile(regex);
    13         Matcher m = p.matcher(phone);
    14         return m.matches();
    15     }
     1     /**
     2      * 验证身份证号是否合法.
     3      *
     4      * @param idCard the id card
     5      * @return true, if is id card
     6      */
     7     public static boolean isIdCard(String idCard){
     8         String regex = "(((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}(((19|20)\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((19|20)\d{2}(0[13578]|1[02])31)|((19|20)\d{2}02(0[1-9]|1\d|2[0-8]))|((19|20)([13579][26]|[2468][048]|0[48])0229))(\d{3})(\d|X|x))";
     9         int[] factorArray = new int[]{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
    10         String[] parityBit = new String[]{"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
    11         String[] idArray = new String[18];
    12         int intStrLen = idCard.length();
    13         String idStr = idCard;
    14         int sum = 0;
    15         
    16         if(StringUtils.isBlank(idCard)){
    17             return false;
    18         }
    19         
    20         //正则验证身份证格式是否正确
    21         Pattern pattern = Pattern.compile(regex);
    22         Matcher matcher = pattern.matcher(idCard);
    23         if(!matcher.matches()){
    24             return false;
    25         }
    26         
    27         //验证身份证号算法是否合法
    28         for(int i = 0; i < intStrLen; i ++){
    29             idArray[i] = idStr.charAt(i) + "";
    30             if(i < (intStrLen - 1)){
    31                 sum += factorArray[i] * Integer.parseInt(idArray[i]);
    32             }
    33         }
    34         if(!parityBit[(sum % 11)].equalsIgnoreCase(idArray[intStrLen - 1])){
    35             return false;
    36         }
    37         return true;
    38     }
  • 相关阅读:
    491 · 回文数
    936 · 首字母大写
    1343 · 两字符串和
    1535 · 转换成小写字母
    13 · 字符串查找
    146 · 大小写转换 II
    241 · 转换字符串到整数(容易版)
    46 · 主元素
    kotlin协程——>通道
    kotlin协程——>异步流
  • 原文地址:https://www.cnblogs.com/thierry/p/4959745.html
Copyright © 2011-2022 走看看