package com.winsun.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author laz
* @function
* @date 2022/10/11
*/
public class PhoneFormatCheckUtils {
/**
* (?<!\d):该位置前面不允许为数字
* (?!\d):该位置后面不允许为数字
* 大陆手机号码11位数,匹配格式:前三位固定格式+后8位任意数
* 此方法中前三位格式有:
* 13+任意数
* 145,147,149
* 15+除4的任意数(不要写^4,这样的话字母也会被认为是正确的)
* 166
* 17+3,5,6,7,8
* 18+任意数
* 198,199
*/
public static String checkNum(String num){
if(num == null || num.length() == 0){return "";}
Pattern pattern = Pattern.compile("(?<!\\d)((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}(?!\\d)");
Matcher matcher = pattern.matcher(num);
StringBuffer bf = new StringBuffer(64);
while (matcher.find()) {
bf.append(matcher.group()).append(",");
}
int len = bf.length();
if (len > 0) {
bf.deleteCharAt(len - 1);
}
return bf.toString();
}
public static void main(String args[]) throws IOException {
String mobileNo="测试13120359225";
System.out.println("截取电话为:"+checkNum(mobileNo));
}
}
java从字符串中截取手机号
最新推荐文章于 2024-05-14 00:52:51 发布