我正在尝试从电话号码中删除 +1(国家代码)(我正在开展标准化项目)。例如,用户有一个格式为 +1(703)-555-5787 的电话号码,他希望它是 (703)-555-5787(前面没有 +1)。
我的理论是我可以根据正则表达式模式搜索 phoneNum 字符串。一旦找到它,我就可以打印它或做任何我喜欢的事情。我的代码如下所示:
public static String normalizePrefix(final String phoneNum) {
String ret = phoneNum;
if (!phoneNum.contains("+1")) {
logger.log(Level.INFO, "input phone number doesn't contain country code (+1)");
}
else {
String regex = "(\\+1)([2-9][0-9][0-9])-([2-9][0-9]{2})-([0-9]{4})";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(phoneNum);
if (phoneNum.matches(regex)){
ret = m.group().substring(2, m.end());
}
}
logger.log(Level.INFO, phoneNum + "-->" + ret);
return ret;
}
我错过了什么?