我能否确定用户输入的电话号码是否可以安全地格式化为 E164?
对于德国,这要求用户以本地区号开始其输入。例如,123456
可能是他所在城市的用户号码,但无法格式化为 E164,因为我们不知道他的本地区号。然后我想保持条目不变。相反,输入089123456
与区号无关,可以格式化为 E164,因为我们知道他来自德国,我们可以将其转换为+4989123456
.
我能否确定用户输入的电话号码是否可以安全地格式化为 E164?
对于德国,这要求用户以本地区号开始其输入。例如,123456
可能是他所在城市的用户号码,但无法格式化为 E164,因为我们不知道他的本地区号。然后我想保持条目不变。相反,输入089123456
与区号无关,可以格式化为 E164,因为我们知道他来自德国,我们可以将其转换为+4989123456
.
您可以使用libphonenumber简单地将您的号码转换为 E164 ,并在转换后检查两个字符串是否相同。如果它们相同,则表示无法格式化数字,否则您将从库中获取的数字将被格式化为 E164。
这是您可以转换的方法
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
String formattedNumber = phoneUtil.format(inputNumber, PhoneNumberFormat.E164);
最后将formattedNumber与inputNumber进行比较