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
