Java 正则表达式 手机号 身份证号脱敏

Java-数据脱敏】使用Java对姓名、手机号码、证件号码进行数据脱敏 Java-数据脱敏】使用Java对姓名、手机号码、证件号码进行数据脱敏。利用算法的方式进行脱敏,这里我们直接使用。 阅读详情
 // 手机号码前三后四脱敏
    public static String mobileEncrypt(String mobile) {
        if (StringUtils.isEmpty(mobile) || (mobile.length() != 11)) {
            return mobile;
        }
        return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    }

    //身份证前三后四脱敏
    public static String idEncrypt(String id) {
        if (StringUtils.isEmpty(id) || (id.length() < 8)) {
            return id;
        }
        return id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*");
    }
    public static void main(String[] args) {

    	System.out.println(CommonUtil.mobileEncrypt("13100002222"));
        System.out.println(CommonUtil.hideIdNumber("34082319940228258X"));
        System.out.println(CommonUtil.idEncrypt("34082319940228258X"));
    }

上面main执行结果:

131****2222
3****************X
340***********258X

 

 

id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*"); 部分解释如下:

  • 正则表达式的使用(本文只说有关已经使用的,其余可自行百度)  
  •   
  • (?<=[\\w]{3})\\w(?=[\\w]{4})  
  • 划分为三个部分1.(?<=[\\w]{3})    2.\\w    3.(?=[\\w]{4})  
  • 整体意思就是:匹配到内容是 除了前3个和后4个 剩下的内容。  
  • (加上replaceAll函数,就是 除了前3个和后4个 剩下的内容 全部替换为 * ).  
  •   
  • 1. \w表示匹配字母、数字、下划线  
  • 2. 为什么上面都是用双\\呢,因为在java代码中,需要加个\进行转义,而本身就是 \w为一个整体代码相应内容,加起来就是两个\\。  
  • 3. [\\w]{3}的意思是 匹配三个相应(字母或者数字或者下划线)的内容。  
  • 4. 同理,[\\w]{4}的意思是 匹配4个相应的内容。  
  • 5. (?<=xxxx)的意思是前面匹配但是不保留,比如:Hello world   (?<=H)则匹配到的内容是 ello world 不保留H,  
  • 6. 在第五点中,如果改成 (?<=H).{3} 则匹配到的内容是 ell,即{3}代表个数。  
  • 7. 整体(?<=[\\w]{3})就是代表 匹配除了前3个字母或者数字或者下划线的内容。  
  • 8. (?=[\\w]{4})就是代表 匹配除了后4个字母或者数字或者下划线的内容。  
  • 9. (?=xxxx)的意思是后面匹配但是不保留,

参考:https://www.geek-share.com/detail/2805593068.html

手把手教你用MATLAB/Simulink模拟微电网潮流方向(附代码下载) 本文提供了一份详细的MATLAB/Simulink微电网潮流仿真实战指南。通过手把手教学,指导读者从零搭建包含光伏、储能和负荷的微电网模型,并模拟并网、孤岛等多种运行场景下的潮流方向变化。文章核心在于利用Simulink实现微电网的动态潮流分析与可视化,帮助工程师深入理解分布式能源系统中的功率平衡与控制策略。 阅读详情

相关推荐

免费 AIS船舶轨迹预测 数据集 分享 (可用于长周期轨迹预测)

论文中使用的数据由提供。有关预处理步骤的详细信息,请参阅。

qq_43747519的博客 1万+

Java中replace、replaceAll和replaceFirst函数的用法小结

相信会java的同学估计都用过replace、replaceAll、replaceFirst这三个函数,可是,我们真的懂他们吗?下面通过这篇文章大家再来好好学习学习下这几个函数。

中国身份证号正则表达式

介绍了中国身份证号正则表达式的细节

身份证校验正则

身份证号码的正则表达式及验证详解 结构和形式 1.号码的结构   - 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。   2.地址码   表示编码对象常住户口所在县(县级市、旗、区)的行政区划代码,按GB/T2260的规定执行。   3.出生日期码   表示编码对象出生的年、月、日,按GB/...

齐枫的博客 1万+

几种常用的正则表达式

正则表达式可以有效地匹配符合中国大陆手机号规则的号码,而且简单易懂。但需要注意的是,在实际应用中,还需要根据需求进行一定的调整和优化,例如允许前面加上 +86 或者在号码中间添加空格等情况。需要注意的是,该正则表达式只能判断身份证号格式是否正确。该正则表达式可以匹配由一个或多个大小写字母组成的字符串,并且不允许包含其他字符。身份证号是一串18位数字和字母的组合,其中最后一位可能为数字或者字母 X。注意,在实际应用时,该正则表达式可能需要根据具体情况进行适当修改或优化。该正则表达式可以匹配形如 "

zzx262625的博客 1万+

java手机号身份证号,卡号,姓名 正则表达式脱敏

public static void replaceSensitive(){ // 卡号显示前6位和后4位,中间打*点, 卡号:16,19,19位都有可能 String accountNumber = "6543211234567890"; int encLength = accountNumber.length() - 10; String regex = "(\\d{6})\\d{" + encLength+ "}(\\w{4})"; .

flower_CSDN的博客 4166

java对数据进行脱敏

博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): Java处理手机号中间4位替换成* 在做电商中,有些手机号是不能全部显示的,中间四位一般需要替换成* 这样处理有2中方法,a:substring来分割  b:正则验证 a:substring来分割手机号  public static void main(String[] args) { String ...

Willian的博客屋 8656

java脱敏

java数据脱敏处理,手机号,身份证号和银行卡号打码展示 结果图如下 20:17:51.730 [main] INFO com.lockbur.open.AppTest - 手机号 1364724 20:17:51.740 [main] INFO com.lockbur.open.AppTest - 手机号 13 20:17:51.741 [main] INFO com.lockbur.open....

奋斗不息 3399

java【参考】手机号身份证号脱敏

String phoneNumber = String.valueOf("18866666666").replace("null", ""); phoneNumber = phoneNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); System.out.println(phoneNumber); String identityCar...

琴韵悠悠 1196

最简单实用的任意字符串隐藏,身份证号隐藏,手机号隐藏方法

最简单的使用正则替换来实现隐藏身份证中间几位数 public static void main(String[] args) { //隐藏身份证 String idCard = "51343619940809631X"; String resultIdCard = idCard.replaceAll("(\\d{4})\\d{11}(\\w{3}...

小栋哟 3094

java 实现对某些字段进行脱敏

Java 中,可以使用以下方法来实现对某些字段进行脱敏: 创建一个脱敏类,包含脱敏所需的方法,如手机号脱敏身份证号脱敏等。 在需要脱敏的地方,调用该脱敏类中对应的方法进行脱敏。 例如,下面是一个简单的脱敏类的示例: public class DesensitizationUtil { public static String desensitizeMobile(String...

weixin_35753431的博客 582

Java开发中常见的一些客户信息脱敏规则

对常见的重要信息一般都要脱敏处理,比如手机号码,邮箱,身份证号,银行卡号;这些敏感度强烈的号码信息,必须进行代码脱敏处理。

A_aspectJ的博客 1613

Java 正则表达式对数据脱敏处理

做开发难免有时需要对数据进行脱敏处理,这里给出一个正则表达式做参考 public class StringTest { public static void main(String[] args) { String str="12345678901"; String regex="(.{3}).*(.{3})";// 保留前3个字符、后3个字符 String r="$1*****$2";// $1第一个表达式,$2 第二个表达式,中间星号可使用任意.

米斯特程序猿 2648

身份证号码的正则表达式及验证详解(JavaScript,Regex)

在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案居民身份证号码,正确、正式的称谓应该是“公民身份号码”。根据【中华人民共和国国家标准 GB 11643-1999】中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。注:该身份证号码来源于国标【GB 11643-1999】。

Grand Magus! Fun ultimate. 4万+

正则表达式】身份证正则表达式详解(史上最全、最详细)

【详解】【正则表达式】身份证正则表达式详解(史上最全、最详细)

tttzzzqqq2018的博客 1万+

java手机号脱敏

java手机号脱敏

l_010的博客 5801

身份证号码正则匹配(正则表达式

正则匹配身份证号 分为18位和15位 ,首先写正则之前我们先明白身份证号的结构 18位 地区: ([1-6][1-9]|50)\d{4} // 补充重庆地区50 年的前两位: (18|19|20) 1800-2399 年的后两位: \d{2} 月份:((0[1-9])|10|11|12) 天数: (([0-2][1-9])|10|20|30|31) 闰年不能禁止29+ 三位顺序码: \d{3} 校验码: [0-9Xx] // 校验18位的身份证 let _IDRe18

木易的博客 7万+

身份证号正则表达式{超详细(假的)}

十八位身份证号正则表达式: /** * 地区号:^[1-9]\\d{5}(六位,不以0开头) * 年份:(19\\d{2})|(20[01]\\d)|(202[012]) 4 * 大月及天数:(((0[13578])|10|12)((0[1-9])|(([12][0-9])|30|31))) 4 * 小月:((0[469])((0[1-9])|(([12][0-9])|30))) * 闰月:(02((0[1-9])|([12][0-9]))) (未判断是否闰月,统一为29天)

m0_68599203的博客 5601

身份证号正则表达式

1、简单的正则表达式: (1)preg_match("/^(\d{18,18}|\d{15,15}|\d{17,17}x)/&quot;,/&quot;,/",id_card) (2)preg_match("/^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?/&quot;,/&quot;,/",id...

weixin_44572450的博客 8499

LCD.rar_HT1621测试每_段 LCD

HT1621液晶显示测试,测试每段、测试每个字

上一篇: DateUtils after 使用注意
下一篇: JVM调优
水桶前辈
博客等级 码龄14年 3592粉丝 673原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值