[Swift5][正则]判断是否是有效的Email邮件地址以及Extension方式

2021-01-23 1716点热度 0人点赞 0条评论

Swift5语法判断给定字符串是否是有效的Email地址,网上找到的使用

NSDataDetector
NSDataDetector的方式应该有误,发现类似
abc@sina.cn.
abc@sina.cn.这样的地址会判断为正确的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)
}
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) }
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 = "abc@sina.cn."
print(string.isEmail)
string = "abc@sina.cn"
print(string.isEmail)
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 = "abc@sina.cn." print(string.isEmail) string = "abc@sina.cn" print(string.isEmail)
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 = "abc@sina.cn."
print(string.isEmail)
string = "abc@sina.cn"
print(string.isEmail)

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论