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)
文章评论