身份证姓名手机号银行卡号邮箱 “ * “ 号隐藏
/*** 对字符串进行脱敏操作* @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();}}
身份证姓名手机号银行卡号邮箱 “ * “ 号隐藏相关推荐
- js手机格式校验+隐藏手机号中间四位,变成*星号 || 身份证生日四位变*,邮箱*号显示
//手机号格式校验 if (/^1[3456789]\d{9}$/.test(phonenum)) { //判断手机号 console.log(手机号正确); } //手机号中间四位用" * ...
- 身份证、手机号、邮箱、银行卡、企业税号等正则校验
身份证号正则校验: 前6位 第一位1到9范围 后5位 数字 /^[1-9]\d{5}/ 年份4位 开头两位 18 or 19 or 20 后面2位数字 /(18|19|20)\d{2}/ 月份2位 1 ...
- 正则(身份证,手机号,邮箱,正整数)
身份证:/^[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([ ...
- java中QQ号、手机号、邮箱号的正则表达式
正则表达式匹配规则 "a-zA-Z"的正则表达式为"[a-zA-Z]" "0-9"的正则表达式为"[0-9]"等价于&q ...
- iOS 手机号和邮箱号脱敏显示,验证手机号
//手机号码段越来越多,只对第一位做验证 + (BOOL)isMobileNumber:(NSString *)mobile{NSString *regexStr = @"^1+[0-9]+ ...
- 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?
有部分使用"草柴"返利APP的用户通过草柴APP查询领取淘宝天猫内部隐藏优惠券及购物返利,确认收货后获得返利金额提取到支付宝账户.但是,草柴官方工作人员在为用户支付返利金额时支付宝 ...
- 对于手机号和邮箱的格式验证
手机号和邮箱号的格式验证: package regex;import java.util.Scanner;public class Regex {public static void main(Str ...
- vue表单验证(用户名、密码、身份证号、中文姓名、手机号、邮箱)
vue表单验证(用户名.密码.身份证号.中文姓名.手机号.邮箱) new Vue({el: '#register',data: function() {// 验证邮箱let checkEmail = ...
- 正则表达式校验邮箱号、手机号、身份证号码等等
正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的 字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地 用极简单的方式达到字符串的复杂控 ...
- Java对姓名, 手机号, 身份证号, 地址进行脱敏
替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String ...
最新文章
- mongodb--常用命令
- Migration Necessary
- Git撤销修改场景及对应指令(checkout、reset、revert)详解
- Python3基本数据类型快速入门
- 13岁的儿子早恋了,心思都不用在学习上,我要怎么帮助他?
- 国士工作室 企业级Android软件开发和实战培训专家
- torch-1.6.0+cu92-cp38-cp38-linux_x86_64.whl is not a supported wheel on this platform.
- word模板生成利器poi-tl
- 2020年8月8日美团笔试题
- Linux返回上一级目录的命令
- MySQL数据库删除大量数据的方式
- 美团技术岗扩招,年薪最高近40万。你有能力进美团吗?
- KeyShot 实时光线追踪三维渲染软件
- Mac Mojave10.14安装vmvare Fusion 11.0.0 win8 镜像
- C语言实现两个多项式加法与乘法
- Reactor3 Flux.create与Flux.push正确打开方式
- Shark007 Advanced Codecs 11.8.5版本更新
- 3DsMax—木梳子制作
- 堆、栈的概念及使用特性
- 汇编lea 指令的作用
热门文章
- 经典r-k法 matlab,解微分方程欧拉法,R-K法及其MATLAB实例
- python求解组合数_6-2 jmu-python-组合数据类型-1.计算坐标点欧氏距离 (10分)
- 小白:关于处理“can't find '__main__' module in ”这个问题的详细处理方式!
- 飞机大战的常见Bug
- 短信验证码校验的实现
- python二级操作题评分方法_第二卷讲解Python语言计算机等级考试二级操作题
- 基于位置的 AR 应用程序开发最完整指南
- 路由器外接硬盘做nas可行吗?
- server服务器系统2019安装,windowsserver 2019系统安装教程图文详解
- 一位尚德机构网课老师的一天:从容、热爱与“一键全连”