Swift - Как проверить строку без знаков препинания и цифр - PullRequest
2 голосов
/ 19 октября 2019

Я хочу проверить строку, чтобы понять, что строка подходит для использования в качестве отображаемого имени в приложении. Внизу блок выглядит только для английских символов. Как я могу покрыть все языковые буквы? Также не разрешены все знаки препинания и цифры.

func isSuitableForDisplayName(inputString: String) -> Bool {

    let mergedString = inputString.stringByRemovingWhitespaces

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

1 Ответ

1 голос
/ 19 октября 2019

Вы можете использовать CharacterSet.letters, который содержит все символы в категориях Unicode L и M.

Категория M включает комбинирующие метки. Если вы не хотите этого, используйте:

CharacterSet.letters.subtracting(.nonBaseCharacters)

Кроме того, ваш способ проверить, содержит ли строка только символы в наборе символов, довольно странный. Я бы сделал что-то вроде этого:

return mergedString.trimmingCharacters(in: CharacterSet.letters) == ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...