Swift5语法判断给定字符串是否是有效的Email地址,网上找到的使用NSDataDetector
的方式应该有误,发现类似[email protected].
这样的地址会判断为正确的Email地址,所以应该使用正则表达式比较保险,直接给出工具方法(2种方式):
普通工具方法
func isEmail(source: String) -> Bool { let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx) return emailPredicate.evaluate(with: source) }
用Extension的方式
extension String { var isEmail: Bool { let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format:"SELF MATCHES %@", emailRegEx) return emailPredicate.evaluate(with: self) } } // 如何使用 var string = "[email protected]." print(string.isEmail) string = "[email protected]" print(string.isEmail)
文章评论