Как разрешить цифры и буквы только без пробелов и ровно 8 символов в UITextField - PullRequest
0 голосов
/ 22 февраля 2019

Я - новая пчела для быстрой разработки iOS, и мне требуется, чтобы в UITextField вводились только цифры и алфавиты без пробелов и ровно 8 символов.

Только для цифр и алфавитов без пробеловЯ следую логике:

extension [YourViewController]: UITextFieldDelegate
{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            do {
                let regex = try NSRegularExpression(pattern: ".*[^A-Za-z0-9 ].*", options: [])
                if regex.firstMatch(in: string, options: [], range: NSMakeRange(0, string.count)) != nil {
                    return false
                }
            }
            catch {
                print("ERROR")
            }
        return true
}
}

Я хочу включить логику ровно 8 символов вместе с этим.Как этого добиться!?

1 Ответ

0 голосов
/ 22 февраля 2019

Попробуйте этот код, он может помочь вам достичь вашей цели:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    do {
        let text = (textField.text! as NSString).replacingCharacters(in: range, with: string)
        let regex = try NSRegularExpression(pattern: "^([a-zA-Z0-9]{0,10})$", options: [])
        if regex.firstMatch(in: text, options: [], range: NSMakeRange(0, text.count)) != nil {
            return true
        }
    }
    catch {
        print("ERROR")
    }
    return false
}
...