import java.util.regex.Matcher;
import java.util.regex.Pattern;public class ConcealNumber {public static void main(String[] args) {// 用*隐藏手机号String testPhoneStr = "13800138000";testPhoneStr  =    concealAllPhoneNum(testPhoneStr);System.out.println(testPhoneStr);// 用*隐藏身份证号String testIDCardStr = "530121198808228647";testIDCardStr  = hideAllIdCardNum(testIDCardStr);System.out.println(testIDCardStr);}/*** 隐藏手机号** @param phoneNum* @return*/public static String concealAllPhoneNum(String phoneNum){Pattern pattern = Pattern.compile("((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}");Matcher matcher = pattern.matcher(phoneNum);StringBuffer sb = new StringBuffer();try {while(matcher.find()) {String phoneStr = matcher.group();phoneStr = phoneStr.substring(0, 3) + "****" + phoneStr.substring(7, phoneStr.length());matcher.appendReplacement(sb,phoneStr);}matcher.appendTail(sb);} catch (Exception ex) {ex.printStackTrace();}return sb.toString();}/*** 隐藏身份证号码** @param idCardNum* @return*/public static String hideAllIdCardNum(String idCardNum){Pattern pattern = Pattern.compile("(\\d{6})(19|20)(\\d{2})(1[0-2]|0[1-9])(0[1-9]|[1-2][0-9]|3[0-1])(\\d{3})(\\d|X|x)");Matcher matcher = pattern.matcher(idCardNum);StringBuffer sb = new StringBuffer();try {while(matcher.find()) {String idCardStr = matcher.group();int len=idCardStr.length();if(len>=9){idCardStr =  idCardStr.replaceAll("(.{"+(len<12?3:6)+"})(.*)(.{4})", "$1" + "****" + "$3");}matcher.appendReplacement(sb,idCardStr);}matcher.appendTail(sb);} catch (Exception ex) {ex.printStackTrace();}return sb.toString();}
}

输出结果:

138****8000
530121****8647

Java身份证、手机号码用*隐藏中间几位相关推荐

  1. java身份证号/手机号隐藏中间几位

    java代码身份证/手机隐藏中间几位 手机号 --保留前3,后4位: String phone = "13525658745"; System.out.println(phone. ...

  2. 微信小程序身份证号码/手机号隐藏中间几位

    在微信小程序中经常会遇到有敏感词或数字需要进行关键字隐藏(如:身份证号码,手机号码和名字等) 一.封装方法 function hiddenStr(str, frontLen, endLen) { // ...

  3. 新旧身份证合法性验证及相互转换算法(三):Java身份证号码验证及将15位转换18位

    package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 身份证号码验证 * */ pub ...

  4. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式...

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...

  5. Java 手机号中间四位隐藏 MySQL函数手机号四位隐藏 Oracle手机号隐藏Java手机号码隐藏

    Java 手机号中间四位隐藏 MySQL函数手机号四位隐藏 Oracle手机号隐藏 Java手机号码隐藏 一.情景描述 在日常开发工作中,遇到一个需求:用户的手机号信息,中间四位需要隐藏起来,保护用户 ...

  6. java身份证工具类(校验身份证是否合法、通过身份证获取年龄、性别、生日,将15位身份证转为18位等)

    一.简介 因为工作需要经常用到身份证做一些相关操作,于是通过查阅资料总结出一些常用的工具方法,包括校验身份证是否合法.通过身份证获取年龄.通过身份证获取性别.通过身份证获取户籍地址.通过身份证获取生日 ...

  7. java 身份证第18位数字的算法

    原来在注册一个网站的时候,发现输入身份证会被验证出来. 即使前面的全正确,但是如果最后一位不正确的话,也会被验证出来的. 原来在身份证的号码,是有规则的.特别是最后一位. 下面是18位身份证最后一位的 ...

  8. java身份证号码正则表达式校验(含最后一位的校验值规则)

    这里是python版本的: https://yanwenjing.blog.csdn.net/article/details/108210623 请仔细阅读注释 点击这里下载判断身份证号码的小工具 身 ...

  9. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年10 ...

最新文章

  1. Java 反射:框架设计的灵魂
  2. 不可不读的绝对英文经典
  3. 在Flash CS6中安装动画辅助制作插件DragonBones
  4. ssh html项目,SSH项目-学生管理系统
  5. CSDN:2020博客之星年度总评选大赛,趣味总结!
  6. 在Github和oschina上搭建自己的博客网站
  7. 学习一下戴戒指的含义[转]
  8. 华为云原生数据仓库GaussDB(DWS)深度技术解读:融、快、大、稳、易
  9. CentOS误删python环境后怎么办?
  10. Intellij IDEA 报错java.lang.NoClassDefFoundError
  11. dubbo 学习资料
  12. win10做文件服务器怎么精简,win10精简系统怎么做到
  13. itunes备份文件夹更换
  14. 阅读技术书籍原著的困扰:技术书籍中的符号用英语该怎么念?
  15. 2020年12月程序员工资新出炉,和你相差多少?
  16. Linux文件I/O实验报告
  17. 苹果7p最佳系统版本_告别虚拟机和双系统,移动硬盘+Win To Go,苹果笔记本的最佳选择...
  18. 前端怎么引入Jquery库
  19. 农产品进出口成都代办公司注册流程
  20. 国标28181:海康、大华、宇视摄像头怎么添加GB28181协议

热门文章

  1. Frenet坐标系与Cartesian坐标系互转(二):Python代码函数实现
  2. 自己写的一点福利代码(二)
  3. ueditor编辑器上传图片的显示问题
  4. 教你制作一张漂亮的城市分布图 比如加油站分布地图
  5. 车载蓝牙音乐主动获取播放进度(安富方案)
  6. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...
  7. 实现读文本文件(IOl流)
  8. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...
  9. 电子邮箱邮件怎么撤回,邮箱如何撤回邮件?
  10. 在outlook上邮件可以撤回?邮件撤回成功后对方还能看到吗?