首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >屏蔽电话号码Java

屏蔽电话号码Java
EN

Stack Overflow用户
提问于 2017-11-21 09:16:49
回答 6查看 19.6K关注 0票数 10

我要掩盖电话号码。它可以由数字、+(代表国家代码)和破折号组成。国家代码可以由1位或更多位数组成。我创建了这样的正则表达式来掩盖所有的数字,但最后的4位除外:

代码语言:javascript
复制
inputPhoneNum.replaceAll("\\d(?=\\d{4})", "*");

用于这样的输入:+13334445678

我得到的结果是:+*5678

但是,它不适用于这样的输入:特别是+1-333-444-5678,它只返回相同的数字而不作任何更改。而所需的输出掩盖了除最后4位之外的所有数字,加上符号和破折号。这就是为什么我想知道如何将我的正则表达式更改为包含破折号?如有任何帮助,我将不胜感激!

EN

Stack Overflow用户

发布于 2020-07-17 17:48:10

这就是我所用的,它可能是有用的,只是掩盖了一些数字在提供的数字。

代码语言:javascript
复制
 /*
 * mask mobile number .
 */
public  String maskMobileNumber(String mobile) {
    final String mask = "*******";
    mobile = mobile == null ? mask : mobile;
    final int lengthOfMobileNumber = mobile.length();
    if (lengthOfMobileNumber > 2) {
        final int maskLen = Math.min(Math.max(lengthOfMobileNumber / 2, 2), 6);
        final int start = (lengthOfMobileNumber - maskLen) / 2;
        return mobile.substring(0, start) + mask.substring(0, maskLen) + mobile.substring(start + maskLen);
    }
    return mobile;
}
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47409339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档