我一直致力于iOS项目,其中要求是根据国家/地区代码验证国际移动电话号码。我使用了phonenumberkit iOS library,但我无法使用以下代码验证手机号码。
static func validatePhoneNumber(cellPhone:String,countryCode:String,countryName:String)->Bool{
let finalResult = "+" + countryCode + cellPhone
let formattedBasedOnCountryCode = PartialFormatter().formatPartial(finalResult)
let result = self.parseNumber(formattedBasedOnCountryCode,countryName: countryName.uppercased())
if result.stringByRemovingWhitespacesAndNewLines.characters.count > 1 {
return true
}
else{
return false
}
}
class func parseNumber(_ number: String,countryName:String) ->String {
let phoneNumberKit = PhoneNumberKit()
do {
let phoneNumber = try phoneNumberKit.parse(number, withRegion: countryName, ignoreType: true)
let result = phoneNumberKit.format(phoneNumber, toType: .international, withPrefix: false)
// print("resulted phone number = \(result)")
return result
}
catch {
//print("Something went wrong = \(number) and countryName = \(countryName)")
return ""
}
return ""
}
上述方法仅适用于UnitedState地区。对于英国,它不会验证所需的数字位数。
输入1:国家代码= +1,手机号码= 2025550192,国家名称= “US”,Result = Pass(即使我删除了最后一位数字,它也会验证 正确地)
输入2:国家代码= + 44,手机号码= 77009002,CountryName = “GB”,结果=通过。它的实际数字是7700900243 验证。它总是作为有效的手机号码返回