最近有QA的同事反馈需要在后台验证手机号码的有效性,由于项目的国际化,所以用简单的正则表达式很难实现,最后发现采用谷歌的libphonenumber可以很好地的很方便的实现。
首先我们需要引入如下几个包
compile('com.googlecode.libphonenumber:geocoder:2.104')
compile('com.googlecode.libphonenumber:libphonenumber:8.9.15')
compile('com.googlecode.libphonenumber:carrier:1.94')
compile('com.googlecode.libphonenumber:prefixmapper:2.104')
添加依赖包以后我们就可以很方便实现以下验证代码:
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber;
import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
/**
* @author longshelan
* @date 2018/11/1 13:50
*/
public class PhoneUtil {
private static PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
private static PhoneNum