ios - 手机号码验证支持 VoIP、分机或手机号码(国内+国际号码)的最佳方式

标签 ios swift nspredicate nsregularexpression

尝试使用以下代码来实现手机号码验证,以支持 voip、分机或手机号码(国内+国际号码)。

func validate(value: String) -> Bool {
    let PHONE_REGEX = "[0123456789][0-9]{9}"
    let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
    let result =  phoneTest.evaluate(with: value)
    return result
}

但它不适用于 (+21) 54683920 这样的数字。

请帮忙。

最佳答案

我建议使用PhoneNumberKit .

存储库的使用示例:

do {
    let phoneNumber = try phoneNumberKit.parse("+33 6 89 017383")
}
catch {
    print("Generic parser error")
}

关于ios - 手机号码验证支持 VoIP、分机或手机号码(国内+国际号码)的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58080920/

相关文章:

ios - 如何设置带有 AND 条件的 NSpredicate 来获取数据

ios - 字符串转换与字符串展开

ios - 根据文本调整 UIButton 大小的最简单方法

ios - 从 Objective-C 调用 C 函数 - 传递大量数据

Swift 闭包真的可以修改常量吗?

ios - 如何调查 ios 中的内存泄漏?

ios - 如何使用自定义设计显示一串数字?

ios - UIPageViewController 不显示点

ios - NSPredicate 对关系属性的计数

ios - 将正则表达式与 NSPredicate 结合使用