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
广告