我试图确定用户是否在UITextField中输入了正确的电子邮件地址。我使用此代码但收到以下错误消息。
func isValidEmail(testStr:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch) // I'm getting the error message here.
let result = range != nil ? true : false
return result
}
@IBAction func logIn(sender: AnyObject) {
let validLogin = isValidEmail(testStr: field.text!)
if validLogin {
print("User entered valid input")
} else {
print("Invalid email address")
}
}
这是我收到的错误消息:"类型'字符串'的值没有会员' rangeOfString'"
我认为这是因为我没有安装RegExKitLite,但我并非100%肯定。即使这样,我也尝试安装套件,但我无法弄清楚如何。我下载了文件,但我无法弄清楚如何在Xcode中添加它。
答案 0 :(得分:0)
如果您使用的是Swift 3或更高版本,则行:
let range = testStr.rangeOfString(emailRegEx, options:.RegularExpressionSearch)
let result = range != nil ? true : false
return result
需要:
let range = testStr.range(of: emailRegEx, options: [ .regularExpression ])
return range != nil
这些都不需要第三方库。
您可能还希望确保整个字符串匹配,因此您应该将^
添加到正则表达式的开头,并将$
添加到结尾。