Swift 中的电子邮件和电话验证


要在 Swift 语言中验证电子邮件和电话,我们可以使用多个条件语句,例如 if 条件,但这是一个漫长的过程,可能包含 50 到 100 个 if 语句才能验证电子邮件。

因此,我们使用正则表达式代替条件语句。Swift 提供了 NSPredicate,我们可以用它来评估正则表达式并对其进行测试。

我们来看看如何使用正则表达式执行相同的操作。

我们将创建一个函数,可在整个项目中用作 String 类或 UIViewController 的扩展。

将以下代码添加到项目中的任何类,或创建一个单独的 Swift 类来添加扩展。

extension String {
   var isValidEmail: Bool {
      let regularExpressionForEmail = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,64}"
      let testEmail = NSPredicate(format:"SELF MATCHES %@", regularExpressionForEmail)
      return testEmail.evaluate(with: self)
   }
   var isValidPhone: Bool {
      let regularExpressionForPhone = "^\d{3}-\d{3}-\d{4}$"
      let testPhone = NSPredicate(format:"SELF MATCHES %@", regularExpressionForPhone)
      return testPhone.evaluate(with: self)
   }
}

使用方法:

override func viewDidLoad() {
   super.viewDidLoad()
   print("11f".isValidEmail)
   print("[email protected]".isValidEmail)
   print("8892".isValidPhone)
   print("998-877-2211".isValidPhone)
}

在运行上述代码时,我们将获得以下输出。

false
true
false
true


更新于:2019 年 7 月 30 日

1000+ 次浏览

开启您的 职业生涯

完成课程获颁证书

开始学习
广告