电子邮件& Swift中的电话验证 [英] Email & Phone Validation in Swift

查看:114
本文介绍了电子邮件& Swift中的电话验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码进行电话号码验证。但我收到以下错误。我无法继续前进。帮助我们推进它。

i am using the following code for phone number validation. But i am getting the following error. I cant able to proceed further. Help us to take it forward.

class PhoneNumberValidation: Validation {
    let PHONE_REGEX = "^\\d{3}-\\d{3}-\\d{4}$"

    func validate(value: String) -> (Bool, ValidationErrorType) {
        if let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX) {
            if phoneTest.evaluateWithObject(value) {
                return (true, .NoError)
            }
            return (false, .PhoneNumber)
        }
        return (false, .PhoneNumber)
    }
}

错误:swift:15:28:条件绑定中的绑定值必须是可选类型

Error : swift:15:28: Bound value in a conditional binding must be of Optional type

推荐答案

是的,您的错误在xcode 6.1中如下

Yes your Error is below in xcode 6.1

由于 IF 有条件必须 Bool 返回类型,但在你的if条件中返回类型是 NSPredicate ,这样你得到错误 swift:条件绑定中的绑定值必须是可选类型,您可以解决如下。

This error is occurs because of IF conditional have to Bool return type, but in Your if condition Return type is NSPredicate , so that you got error swift: Bound value in a conditional binding must be of Optional type you can solve as below.

var phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
     if phoneTest.evaluateWithObject(value) {
              return (true, .NoError)
         }
             return (false, .PhoneNumber)
        }

Swift中的电子邮件验证。

func isValidEmail(testStr:String) -> Bool {
        print("validate emilId: \(testStr)")
        let emailRegEx = "^(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?(?:(?:(?:[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+(?:\\.[-A-Za-z0-9!#$%&’*+/=?^_'{|}~]+)*)|(?:\"(?:(?:(?:(?: )*(?:(?:[!#-Z^-~]|\\[|\\])|(?:\\\\(?:\\t|[ -~]))))+(?: )*)|(?: )+)\"))(?:@)(?:(?:(?:[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)(?:\\.[A-Za-z0-9](?:[-A-Za-z0-9]{0,61}[A-Za-z0-9])?)*)|(?:\\[(?:(?:(?:(?:(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))\\.){3}(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))))|(?:(?:(?: )*[!-Z^-~])*(?: )*)|(?:[Vv][0-9A-Fa-f]+\\.[-A-Za-z0-9._~!$&'()*+,;=:]+))\\])))(?:(?:(?:(?: )*(?:(?:(?:\\t| )*\\r\\n)?(?:\\t| )+))+(?: )*)|(?: )+)?$"
        let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
        let result = emailTest.evaluateWithObject(testStr)
        return result
    } 

使用电子邮件验证:

if isValidEmail("kirit@gmail.com"){
        print("Validate EmailID")
    }
    else{
        print("invalide EmailID")
    }

Swift中的电话号码验证

func validate(value: String) -> Bool {
        let PHONE_REGEX = "^\\d{3}-\\d{3}-\\d{4}$"
        let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
        let result =  phoneTest.evaluateWithObject(value)
        return result
    }

这篇关于电子邮件& Swift中的电话验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆