首页 > 编程语言 > java用正则表达式脱敏手机号

java用正则表达式脱敏手机号

时间:2022-12-30 11:00:56浏览次数:37  
标签:25 return 手机号 str java 脱敏 String

一种正则形式:在Java开发中有时候需要对敏感字段数据脱敏,废话不多说,直接上代码。

        /**
         * 脱敏手机号
         *
         * @param str
         * @return 脱敏后字符串
         */
        public static String maskPhone(String str) {
            return str.replaceAll("(13[0-9]|14[5-9]|15[0-35-9]|16[25-7]|17[0-8]|18[0-9]|19[0135689])\\d{4}(\\d{4})", "$1*****$2");
        }

测试结果如图

 当然大家可以根据需要定义正则表达式脱敏其他数据。

二种正则形式

        /**
         * 脱敏手机号
         *
         * @param str
         * @return 脱敏后字符串
         */
        public static String maskPhone(String str) {
            return str.replaceAll("(recipientPhone|msg|mobile|phone|phoneNo|手机号|电话)(=|=\\[|\":\"|:|:|=')(13[0-9]|14[5-9]|15[0-35-9]|16[25-7]|17[0-8]|18[0-9]|19[0135689])(\\d{4})(\\d{4})(]|\"|'|)", "$1$2$3*****$5$6");
        }

regex说明
(mobile|手机号|phoneNo|recipientPhone):脱敏关键字,多个之间以英文|分隔

(=|=\[|\":\"|:|:|='):关键字后的符号,多个之间以英文|分隔

匹配手机号前三位数字:(13[0-9]|14[5-9]|15[0-35-9]|16[25-7]|17[0-8]|18[0-9]|19[0135689])

(\d{4}):匹配手机号中间四位4位数字

(\d{4}):匹配手机号后4位数字

(\]|\"|'|):匹配值后的其他字符

$n即对应第n对括号(从1开始),上图中共有6对括号,$1$2$3****$5$6则表示,仅有第4组内容被****替代,其他内容按原内容显示.

标签:25,return,手机号,str,java,脱敏,String
From: https://www.cnblogs.com/tiancai/p/17014347.html

相关文章

  • 用Java开发出网站,在其中输入中文,但是保存到MySQL数据库中却是????
    前言:前两部分是从mysql和eclipse的角度去解决,在解决的过程中学到了之前没设计到的查看和修改数据库或数据表的字符集的知识。后一部分是掌握了前两步后,进行的新一轮解决问题......
  • 纯JavaScript入门级小游戏:兔子抢金币(附演示地址+源码)
    Hello,大家好,我是兔哥,我又来分享好玩的入门级项目啦。今天给大家带来的是一个纯JavaScript入门级小游戏:兔子抢金币,规则非常简单,控制屏幕上的兔子去接天上掉下来的金币,接满20......
  • 送书啦,JavaScript百炼成仙,第一轮送书抽奖活动
    ......
  • 老杜告诉你java小白到大神是怎么炼成的
    1.学习前的准备1.1一个好的学习方法(应该怎么学习更高效);一个合格的程序员应该具备两个能力有一个很好的指法速度(敲代码快)有一个很好的编程思想(编程思路:能够使用编程......
  • 启动Java项目报错Problematic frame:Failed to write core dump. Minidumps are not e
    ❗Problematicframe:有问题的框架✔fastjson空指针不能正确抛空指针异常,换成fastjson2即可。AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:EXC......
  • 10Javascript高级
    JavaScript面向对象目标:能够说出什么是面向对象能够说出类和对象的关系能够使用class创建自定义类能够说出什么是继承面向对象编程介绍:两大编程思想:面向过程面向对象面向过......
  • 7JavaScript基础语法
    第一章1计算机编程基础什么是编程语言编程语言和标记语言的不同常见的数据存储单位及其换算关系内存的主要作用以及特点2编程语言编程:就是让计算机为解决某个问题而使用......
  • Java关键词synchronized解读
    目录1引入Synchronized2Synchronized的使用2.1对象锁2.1.1Synchronized修饰实例方法2.1.2Synchronized修饰代码块2.2类锁2.2.1synchronize修饰静态方法2.2.2synchr......
  • Java面试题-数据库
    数据库的存储引擎以及锁机制锁的存在是为了数据的一致性,mysql在修改数据层面是支持并发修改的,那么在多个线程同时修改一个数据时产生的线程安全问题。我们知道MySQL主要有......
  • Java 遍历 Map 的 5 种方式
    Java中遍历Map有多种方法,从最早的迭代器Iterator,到JDK5开始支持的增强型for循环——即foreach,再到JDK8的Lambda表达式,让我们一起来看下具体的用......