Есть ли способ для текстового поля принимать только алфавиты и пробелы в быстром - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь проверить, есть ли в моем имени имя специального символа или числа, введенного пользователем.

Я пробовал этот код, но когда у моего имени есть пробел, как, например, у Марка Джона, это считается ошибкой.

let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
           if name.rangeOfCharacter(from: characterset.inverted) != nil {
            return false
        }else{
            return true
    }

Ответы [ 2 ]

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

Вы можете использовать регулярное выражение, например.

do {
    let regex = try NSRegularExpression(pattern: ".*[^A-Za-z ].*", options: [])
    if regex.firstMatch(in: nameValue, options: [], range: NSMakeRange(0, nameValue.characters.count)) != nil {
     self.showAlert(message: "Must not contain Number in Name")

    } else {

           }
}
catch {

}
0 голосов
/ 10 мая 2019

Вы можете добавить пробел к строке, которую вы используете для инициализации вашего CharacterSet.

Или вы можете использовать:

let characterSet = CharacterSet.letters.union(.whitespaces)

Это позволяет буквы из любого алфавита.

Не имеет отношения, но вы можете заменить это if/else на:

return name.rangeOfCharacter(from: characterset) != nil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...