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

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

Swift5语法判断给定字符串是否是有效的Email地址,网上找到的使用NSDataDetector的方式应该有误,发现类似[email protected]这样的地址会判断为正确的Email地址,所以应该使用正则表达式比较保险,直接给出工具方法(2种方式):

普通工具方法

func isEmail(source: String) -> Bool {
    let emailRegEx = "[A-Z0-9a-z._%+-][email protected][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._%+-][email protected][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)

 

admin

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

文章评论

*

code