以下是图书馆的工作方式:
let phoneUtil = NBPhonenumberUtil() let phonenumberConverted = try phoneUtil.parse("0665268242",defaultRegion: "FR") // So I don't kNow the country of the user here print(try? phoneUtil.format(phonenumberConverted,numberFormat: NBEPhonenumberFormat.INTERNATIONAL))
NSString *formattedPhonenumberSubString(NSString *phonenumber) { NBPhonenumberUtil *phoneUtil = [NBPhonenumberUtil sharedInstance]; phonenumber = [phoneUtil normalizeDigitsOnly:phonenumber]; NSString *nationalnumber; NSnumber *countryCode = [phoneUtil extractCountryCode:phonenumber nationalnumber:&nationalnumber]; if ([countryCode isEqualTonumber:@0]) return phonenumber; NSString *regionCode = [[phoneUtil regionCodeFromCountryCode:countryCode] objectATindex:0]; NSString *paddedNationalnumber = [nationalnumber StringByPaddingToLength:15 withString:@"0" starTingATindex:0]; NSString *formatted; NSString *formattedSubstr; for (int i=0; i < paddedNationalnumber.length; i++) { NSError *error = nil; formattedSubstr = [phoneUtil format:[phoneUtil parse:[paddedNationalnumber subStringToIndex:i] defaultRegion:regionCode error:&error] numberFormat:NBEPhonenumberFormaTinTERNATIONAL error:&error]; if (getExtraCharacters(formattedSubstr) > getExtraCharacters(formatted)) // extra characters means more formatted formatted = formattedSubstr; } // Preparing the buffer for phonenumber unichar phonenumberBuffer[phonenumber.length+1]; [phonenumber getCharacters:phonenumberBuffer range:NsmakeRange(0,phonenumber.length)]; // Preparing the buffer for formatted unichar formattedBuffer[formatted.length+1]; [formatted getCharacters:formattedBuffer range:NsmakeRange(0,formatted.length)]; int j=0; for(int i = 0; i < phonenumber.length && j < formatted.length; i++) { while(formattedBuffer[j] != phonenumberBuffer[i]) j++; j++; } return [formatted subStringToIndex:j];
}
以上是大佬教程为你收集整理的iOS将电话号码转换为国际格式全部内容,希望文章能够帮你解决iOS将电话号码转换为国际格式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。