java 格式化手机号码_格式化手机号码 - T_SevenS的个人空间 - OSCHINA - 中文开源技术交流社区...

手机号会存在加区号/国际ip号的问题,如+8615851732142、008615851732142、17951158517332142或者0158517321142,上面几个号码实际都是同一个号码,但加了不同的前缀。程序中会将上面几种情况视为同一个号码,具体逻辑如下:

fa13868adc42447786140c25cb6ba7df?version=auto&filename=aaa.png

java参考代码

......

String tel = "+008613701234567";

//手机号正则

String reg = "^[0-9\\+]*?1[3456789]\\d{9}$";

Pattern pattern = Pattern.compile(reg);

Matcher matcher = null;

//过滤非数字字符  如 158-517 234 34  =》 15851723434

tel = tel.replaceAll("\\D", "");

//匹配手机号

matcher = pattern.matcher(tel);

if(tel.length() >= 11 && matcher.find()){

tel = tel.substring(tel.length() - 11);

}else if(tel.length()>=7){//固话号码(区号+7/8位)、未匹配到的手机号

tel=tel.substring(tel.length()-7);

}

......

注:按照上述逻辑仅适用于查询后的处理(去重等),不可用于处理入库前的号码数据。因为,8位的固话号码(或正则未匹配到的手机号码)会被截取为7位,处理后的号码不再可拨打。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值