Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

การตรวจสอบอีเมลและโทรศัพท์ใน Swift


ในการตรวจสอบอีเมลและโทรศัพท์ในภาษาที่รวดเร็ว เราสามารถใช้คำสั่งแบบมีเงื่อนไขได้หลายแบบ เช่น if condition แต่นั่นเป็นกระบวนการที่ใช้เวลานาน และอาจมีคำสั่ง if 50-100s สำหรับตรวจสอบอีเมล

ดังนั้นแทนที่จะใช้เงื่อนไข เราจะใช้นิพจน์ทั่วไป Swift ให้ NSPredicates ซึ่งเราสามารถใช้ในการประเมินนิพจน์ทั่วไปและทดสอบได้

มาดูกันว่าเราจะใช้นิพจน์ทั่วไปทำเช่นเดียวกันได้อย่างไร

เราจะสร้างฟังก์ชันที่เราสามารถใช้เป็นส่วนขยายของคลาส String หรือ UIViewController เพื่อใช้ตลอดทั้งโครงการ

เพิ่มโค้ดต่อไปนี้ในคลาสใดก็ได้ใน Project ของคุณ หรือสร้างคลาส 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


การตรวจสอบอีเมลและโทรศัพท์ใน Swift