/*** 对字符串进行脱敏操作* @param origin 原始字符串* @param prefixNoMaskLen 左侧需要保留几位明文字段* @param suffixNoMaskLen 右侧需要保留几位明文字段* @param maskStr 用于遮罩的字符串, 如'*'* @return 脱敏后结果*/public static String desValue(String origin, int prefixNoMaskLen, int suffixNoMaskLen, String maskStr) {if (origin == null) {return null;}StringBuilder sb = new StringBuilder();for (int i = 0, n = origin.length(); i < n; i++) {if (i < prefixNoMaskLen) {sb.append(origin.charAt(i));continue;}if (i > (n - suffixNoMaskLen - 1)) {sb.append(origin.charAt(i));continue;}sb.append(maskStr);}return sb.toString();}/*** 【中文姓名】只显示最后一个汉字,其他隐藏为星号,比如:**梦* @param fullName 姓名* @return 结果*/public static String chineseName(String fullName) {if (fullName == null) {return null;}return desValue(fullName, 0, 1, "*");}/*** 【身份证号】显示前六位, 四位,其他隐藏。共计18位或者15位,比如:340304*******1234* @param id 身份证号码* @return 结果*/public static String idCardNum(String id) {return desValue(id, 6, 4, "*");}/*** 【固定电话】后四位,其他隐藏,比如 ****1234* @param num 固定电话* @return 结果*/public static String fixedPhone(String num) {return desValue(num, 0, 4, "*");}/*** 【手机号码】前三位,后四位,其他隐藏,比如135****6810* @param num 手机号码* @return 结果*/public static String mobilePhone(String num) {return desValue(num, 3, 4, "*");}/*** 【地址】只显示到地区,不显示详细地址,比如:北京市海淀区***** @param address 地址* @return 结果*/public static String address(String address) {return desValue(address, 6, 0, "*");}/*** 【电子邮箱 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.com* @param email 电子邮箱* @return 结果*/
//    public static String email(String email) {//        if (email == null) {//            return null;
//        }
//        int index = StrUtil.indexOf(email, '@');
//        if (index <= 1) {//            return email;
//        }
//        String preEmail = desValue(email.substring(0, index), 1, 0, "*");
//        return preEmail + email.substring(index);
//
//    }/*** 【银行卡号】前六位,后四位,其他用星号隐藏每位1个星号,比如:622260**********1234* @param cardNum 银行卡号* @return 结果*/public static String bankCard(String cardNum) {return desValue(cardNum, 6, 4, "*");}/*** 【密码】密码的全部字符都用*代替,比如:******* @param password 密码* @return 结果*/public static String password(String password) {if (password == null) {return null;}return "******";}/*** 【密钥】密钥除了最后三位,全部都用*代替,比如:***xdS 脱敏后长度为6,如果明文长度不足三位,则按实际长度显示,剩余位置补** @param key 密钥* @return 结果*/public static String key(String key) {if (key == null) {return null;}int viewLength = 6;StringBuilder tmpKey = new StringBuilder(desValue(key, 0, 3, "*"));if (tmpKey.length() > viewLength) {return tmpKey.substring(tmpKey.length() - viewLength);}else if (tmpKey.length() < viewLength) {int buffLength = viewLength - tmpKey.length();for (int i = 0; i < buffLength; i++) {tmpKey.insert(0, "*");}return tmpKey.toString();}else {return tmpKey.toString();}}

身份证姓名手机号银行卡号邮箱 “ * “ 号隐藏相关推荐

  1. js手机格式校验+隐藏手机号中间四位,变成*星号 || 身份证生日四位变*,邮箱*号显示

    //手机号格式校验 if (/^1[3456789]\d{9}$/.test(phonenum)) { //判断手机号 console.log(手机号正确); } //手机号中间四位用" * ...

  2. 身份证、手机号、邮箱、银行卡、企业税号等正则校验

    身份证号正则校验: 前6位 第一位1到9范围 后5位 数字 /^[1-9]\d{5}/ 年份4位 开头两位 18 or 19 or 20 后面2位数字 /(18|19|20)\d{2}/ 月份2位 1 ...

  3. 正则(身份证,手机号,邮箱,正整数)

    身份证:/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ 手机号:/^1([ ...

  4. java中QQ号、手机号、邮箱号的正则表达式

    正则表达式匹配规则 "a-zA-Z"的正则表达式为"[a-zA-Z]" "0-9"的正则表达式为"[0-9]"等价于&q ...

  5. iOS 手机号和邮箱号脱敏显示,验证手机号

    //手机号码段越来越多,只对第一位做验证 + (BOOL)isMobileNumber:(NSString *)mobile{NSString *regexStr = @"^1+[0-9]+ ...

  6. 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?

    有部分使用"草柴"返利APP的用户通过草柴APP查询领取淘宝天猫内部隐藏优惠券及购物返利,确认收货后获得返利金额提取到支付宝账户.但是,草柴官方工作人员在为用户支付返利金额时支付宝 ...

  7. 对于手机号和邮箱的格式验证

    手机号和邮箱号的格式验证: package regex;import java.util.Scanner;public class Regex {public static void main(Str ...

  8. vue表单验证(用户名、密码、身份证号、中文姓名、手机号、邮箱)

    vue表单验证(用户名.密码.身份证号.中文姓名.手机号.邮箱) new Vue({el: '#register',data: function() {// 验证邮箱let checkEmail = ...

  9. 正则表达式校验邮箱号、手机号、身份证号码等等

    正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的 字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地 用极简单的方式达到字符串的复杂控 ...

  10. Java对姓名, 手机号, 身份证号, 地址进行脱敏

    替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String ...

最新文章

  1. mongodb--常用命令
  2. Migration Necessary
  3. Git撤销修改场景及对应指令(checkout、reset、revert)详解
  4. Python3基本数据类型快速入门
  5. 13岁的儿子早恋了,心思都不用在学习上,我要怎么帮助他?
  6. 国士工作室 企业级Android软件开发和实战培训专家
  7. torch-1.6.0+cu92-cp38-cp38-linux_x86_64.whl is not a supported wheel on this platform.
  8. word模板生成利器poi-tl
  9. 2020年8月8日美团笔试题
  10. Linux返回上一级目录的命令
  11. MySQL数据库删除大量数据的方式
  12. 美团技术岗扩招,年薪最高近40万。你有能力进美团吗?
  13. KeyShot 实时光线追踪三维渲染软件
  14. Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
  15. C语言实现两个多项式加法与乘法
  16. Reactor3 Flux.create与Flux.push正确打开方式
  17. Shark007 Advanced Codecs 11.8.5版本更新
  18. 3DsMax—木梳子制作
  19. 堆、栈的概念及使用特性
  20. 汇编lea 指令的作用

热门文章

  1. 经典r-k法 matlab,解微分方程欧拉法,R-K法及其MATLAB实例
  2. python求解组合数_6-2 jmu-python-组合数据类型-1.计算坐标点欧氏距离 (10分)
  3. 小白:关于处理“can't find '__main__' module in ”这个问题的详细处理方式!
  4. 飞机大战的常见Bug
  5. 短信验证码校验的实现
  6. python二级操作题评分方法_第二卷讲解Python语言计算机等级考试二级操作题
  7. 基于位置的 AR 应用程序开发最完整指南
  8. 路由器外接硬盘做nas可行吗?
  9. server服务器系统2019安装,windowsserver 2019系统安装教程图文详解
  10. 一位尚德机构网课老师的一天:从容、热爱与“一键全连”