Я хочу проверить правильность как номера мобильного телефона, так и идентификатора электронной почты в одном текстовом поле. Как я должен подтвердить это? - PullRequest
0 голосов
/ 22 мая 2019

Я хочу проверить валидацию как «Email ID», так и «номера мобильного телефона» в одном текстовом поле. Как мне проверить условия для одного и того же текстового поля?

1 Ответ

0 голосов
/ 22 мая 2019

Может быть, это поможет:

extension String {
    var isPhoneNumber: Bool {
        do {
            let detector = try NSDataDetector(types: NSTextCheckingResult.CheckingType.phoneNumber.rawValue)
            let matches = detector.matches(in: self, options: [], range: NSMakeRange(0, self.count))
            if let res = matches.first {
                return res.resultType == .phoneNumber && res.range.location == 0 && res.range.length == self.count
            } else {
                return false
            }
        } catch {
            return false
        }
    }
}

     extension String {
            var isInt: Bool {
                return Int(self) != nil
            }
        }

        func isValidEmail(testStr:String) -> Bool {
                let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
                let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
                return emailTest.evaluate(with: testStr)
            }


        if textField.text.characterCount > 6 {
            if textField.text.isInt == true {
              print("this might be users phone number"
            } else if isValidEmail(testStr:textField.text) {
              print("this might be users mail")
            } else {
              print("user entered wrong value or nothing")
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...