zoukankan      html  css  js  c++  java
  • 个人信息打码

    package com;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class test {
      
      //个人信息打码
      private static String getEncrypt(String number){
        //电话
        if (number != null && number.length() == 11) {
          return number.replaceAll("(\d{3})\d{4}(\d{4})", "$1****$2");
        }
        //身份证号码
        if (number != null && number.length() == 18) {
          return number.replaceAll("(\d{4})\d{12}(\w{2})","$1************$2");
        } else if(number != null && number.length() == 15){
          return number.replaceAll("(\d{4})\d{9}(\w{2})","$1*********$2");
        }else{
          return number;
        }
      }
      
      private static String getEncryptName(String name){
        String regex = "[\u4E00-\u9FA5]{2,30}(?:·[\u4E00-\u9FA5]{2,5})*";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(name);
        boolean isMatch = m.matches();
        StringBuilder sb = new StringBuilder();
        String names="";
        if (isMatch) {//说明是中文姓名
          if (name.contains("·")) {
            String[] strNames = name.split("·");
            for (int i = 0; i < strNames.length-1; i++) {
              if (i!=strNames.length) {
                names = strNames[i].replaceAll("[\u4e00-\u9fa5]", "*");
              }
              sb.append(names).append("·");
            }
            return sb.append(strNames[strNames.length-1]).toString();
          } else {
            String[] strNames = name.split("");
            sb.append(strNames[1]);
            for (int i = 2; i < strNames.length; i++) {
              names = strNames[i].replaceAll("[\u4e00-\u9fa5]", "*");
              sb.append(names);
            }
            return sb.toString();
          }
        } else {//说明是英文
          if (name.contains(" ")) {
            String[] strNames = name.split(" ");
            for (int i = 0; i < strNames.length-1; i++) {
              if (i!=strNames.length) {
                names = strNames[i].replaceAll("^[A-Za-z]+$", "*");
              }
              sb.append(names).append(" ");
            }
            return sb.append(strNames[strNames.length-1]).toString();
          }
        }
        return name;
      }
    
      /**
       * @param args
       */
      public static void main(String[] args) {
        System.out.println(getEncrypt("411421995412541201"));
        System.out.println(getEncrypt("13595245120"));
        System.out.println(getEncryptName("张三"));
      }
    
    }

    结果:

  • 相关阅读:
    从零搭建一个IdentityServer——项目搭建
    自学是门手艺-准备好好读读这本书
    Python学习路径
    如何查看一套Android代码的版本
    用tmux让程序在ssh退出后保持运行
    AOSP patch
    The Update Engine Action System
    职 工 养 老 保 险 转 移—陕西省外转入
    uml资料
    ABOTA资料汇集
  • 原文地址:https://www.cnblogs.com/gaomanito/p/9505134.html
Copyright © 2011-2022 走看看