我有这个正则表达式(([A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,6}
)的电子邮件地址,我试图做一个函数来检查一个字符串是否与它对应。 我已经尝试过检查字符串是否匹配正则表达式模式Swift 2.2
func matches() -> Bool
{
let emailRegex : String = "([A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"
return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluateWithObject(self) //I use self because this is an extension of String
}
和
func matches() -> Bool
{
let emailRegex : String = "([A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"
return self.rangeOfStringrangeOfString(emailRegex, options: .RegularExpressionSearch) != nil
}
,但他们要么给我一个运行时错误(与NSPredicate),或者说,每单的电子邮件地址是(与.rangeOfString)
我无效在this link上也发现了一个正则表达式类声明,它是用Swift 1.x编写的(但我可以很容易地将它转换为Swift 2.x来构建它),但它也不起作用。
我没有找到一个工作或可以理解的方法上下搜索(我对Swift有点新),所以我的问题是:如何检查字符串是否与Swift 2中的正则表达式匹配?
甜耶稣它的作品,**非常感谢**。显然,我在Google上挣扎的所有时间都是完全浪费时间,这要感谢我的愚蠢 – NOVA99
我无法发送验证电子邮件,原因有两个:1)它是一个地址簿2)它只是一个命令行工具... – NOVA99
@ NOVA99命令行工具可以完美地发送电子邮件('/ usr/bin/mail'就是一个经典的例子)。但是,考虑到地址簿,您可以考虑将电子邮件正确性的责任交给用户。例如,你是否还要检查街道地址(特别是国际地址)的有效性? – Evert