我正在使用此代码验证电子邮件文本字段。
static func validateEmail(candidate: String) -> Bool {
let emailRegex = "[A-Z0-9a-z._]+@[A-Za-z]+.[A-Za-z]{1,35}"
return NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: candidate)
}
但是当我输入“rahul.123@clicksabcd.com”时,该应用程序将冻结。我不知道如何在iOS中使用正则表达式。
答案 0 :(得分:0)
将此类方法用于电子邮件验证...
class func isValidEmail(_ strEmail:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
if(!strEmail.isEmpty){
if(strEmail[strEmail.startIndex] == "."){
return false
}else{
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluate(with: strEmail)
}
}else{
return false
}
}
您可以将此方法用作
ValidationClass.isValidEmail(userEmail!)
...谢谢
答案 1 :(得分:0)
Swift 4.0
您可以在String
extension
中编写电子邮件验证功能,如下所示。
extension String {
func isValidEmail() -> Bool {
let regex = try? NSRegularExpression(pattern: "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$", options: [.caseInsensitive])
return regex?.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.count)) != nil
}
}
你可以像下面这样使用它。
var email = "mrvora@gmail.com"
if email.isValidEmail() {
//correct email
}
答案 2 :(得分:0)
试试这个..!
extension String {
func isEmail() -> Bool {
let expression = try! NSRegularExpression(pattern: "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$", options: [.caseInsensitive])
return expression.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, characters.count)) != nil
}
}
在游乐场测试:
var str = "rahul.123@clicksabcd.com"
var str2 = "rahul.123@clicksabcd32com"
str.isEmail() //true
str2.isEmail() //false