iOS-Mobile号码验证基于国家/地区

时间:2017-12-27 06:08:36

标签: swift xcode libphonenumber

我一直致力于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   验证。它总是作为有效的手机号码返回

0 个答案:

没有答案