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) } }
Error : swift:15:28: Bound value in a conditional binding must be of Optional type
Yes your Error is below in XCode 6.1
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) }
Email-Validations in 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 }
Use of Email-validation:
if isValidEmail("[email protected]"){ print("Validate EmailID") } else{ print("invalide EmailID") }
Phone-Number Validation in 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.evaluate(with: value) return result }
//MARK:- Validation Extension
-
extension String { //To check text field or String is blank or not var isBlank: Bool { get { let trimmed = trimmingCharacters(in: CharacterSet.whitespaces) return trimmed.isEmpty } } //Validate Email var isEmail: Bool { do { let regex = try NSRegularExpression(pattern: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}", options: .caseInsensitive) return regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.count)) != nil } catch { return false } } var isAlphanumeric: Bool { return !isEmpty && range(of: "[^a-zA-Z0-9]", options: .regularExpression) == nil } //validate Password var isValidPassword: Bool { do { let regex = try NSRegularExpression(pattern: "^[a-zA-Z_0-9\\-_,;.:#+*?=!§$%&/()@]+$", options: .caseInsensitive) if(regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) != nil){ if(self.characters.count>=6 && self.count<=20){ return true }else{ return false } }else{ return false } } catch { return false } } }
use of Email Validation:
if(txtEmail.isEmail){ }
Swift 2.0 Solution
Paste these line anywhere in code.(or in your Constant file)
extension String { //To check text field or String is blank or not var isBlank: Bool { get { let trimmed = stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) return trimmed.isEmpty } } //Validate Email var isEmail: Bool { do { let regex = try NSRegularExpression(pattern: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}", options: .CaseInsensitive) return regex.firstMatchInString(self, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, self.count)) != nil } catch { return false } } //validate PhoneNumber var isPhoneNumber: Bool { let charcter = NSCharacterSet(charactersInString: "+0123456789").invertedSet var filtered:NSString! let inputString:NSArray = self.componentsSeparatedByCharactersInSet(charcter) filtered = inputString.componentsJoinedByString("") return self == filtered } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With