0

我正在尝试确定用户是否在 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")
    }
}

这是我收到的错误消息:“'String' 类型的值没有成员 'rangeOfString'”

我认为这是因为我没有安装 RegExKitLite,但我不是 100% 确定。尽管如此,我还是尝试安装该套件,但我不知道如何安装。我下载了文件,但我不知道如何在 Xcode 中添加它。

4

1 回答 1

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

这些都不需要第三方库。

您可能还想确保整个字符串匹配,因此您应该添加^到正则表达式的开头并添加$到末尾。

于 2018-02-14T00:53:06.843 回答