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("abc@xuyz.com".isValidEmail)
   print("8892".isValidPhone)
   print("998-877-2211".isValidPhone)
}

在執行上述程式碼時,我們將獲得以下輸出。

false
true
false
true


更新於:2019 年 7 月 30 日

1000+ 次瀏覽

開啟您的 職業生涯

完成課程獲頒證書

開始學習
廣告
© . All rights reserved.