Swift 中的邮箱和电话验证

swiftiosmobile developmentiphone/ipad更新于 2026/2/2 1:52:17

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

因此,我们将使用正则表达式代替条件语句。Swift 提供了 NSPredicates 类,我们可以使用它来计算正则表达式的值并进行测试。

让我们看看如何使用正则表达式来实现同样的效果。

我们将创建一个函数,它可以作为 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("abc@xuyz.com".isValidEmail)
   print("8892".isValidPhone)
   print("998-877-2211".isValidPhone)
}

当我们运行上述代码时,我们得到以下输出。

false
true
false
true




关于我们 | 隐私条款 | 学习路线
返回顶部