是否有一种模式可以验证 phone 号码是否属于具体国家?

Is there a pattern to validate if a phone number is of a concrete country?

我想知道是否有任何默认模式来验证 phone 号码是否属于具体国家?

目前,我使用的是 Patterns.PHONE.matcher(phone).matches();,但这验证了 phone,没有 EEUU phone,意大利 phone,等等...

如何知道电话phone号码是否是具体国家的号码?是否可以不用像 +0012 这样的国际前缀?

使用来自 Google

libphonenumber
implementation 'io.michaelrocks:libphonenumber-android:8.8.5'

代码

  PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.createInstance(this)
  PhoneNumber phoneNumber = phoneNumberUtil.parse("+917874962727", null)
  String regionCode = phoneNumberUtil.getRegionCodeForNumber(phoneNumber) // IN for India

getRegionCodeForNumber 会给你国家代码。此外,您可以映射

  • 美国 => 美国
  • IN => 印度
  • IT => 意大利