Как указать тип текста в UITextField
Я пытаюсь определить, вводит ли пользователь правильный адрес электронной почты в 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.
1 ответ
Если вы используете 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
Ничего из этого не требует сторонней библиотеки.
Вы, вероятно, также хотите убедиться, что вся строка соответствует, поэтому вы должны добавить ^
в начале регулярного выражения и добавить $
к концу.