Проверьте NSString на специальные символы

Я хочу проверить NSString на специальные символы, т.е. что-либо кроме a-z, A-Z и 0-9.

Я не должен проверять, сколько специальных символов присутствует, или их положения, я просто должен знать, содержит ли конкретная строка кого-либо или нет. Если это делает, то я хочу смочь отобразить "Ошибку!", или что-то подобное.

Например, jHfd9982 в порядке, но asdJh992@ не.

Кроме того, буквы с диакритическими знаками, диакритическими знаками, и т.д. не должны быть позволены.

Как я пошел бы об этом?

Спасибо!

Michael

33
задан Michael 16 February 2017 в 21:14
поделиться

2 ответа

NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789"] invertedSet];

if ([aString rangeOfCharacterFromSet:set].location != NSNotFound) {
  NSLog(@"This string contains illegal characters");
}

Вы также можете использовать regex (этот синтаксис взят из RegexKitLite: http://regexkit.sourceforge.net ):

if ([aString isMatchedByRegex:@"[^a-zA-Z0-9]"]) {
  NSLog(@"This string contains illegal characters");
}
111
ответ дан 27 November 2019 в 17:24
поделиться

Вы хотите выполнить поиск в NSString с использованием набора символов, если он не может найти какие-либо символы в строке, тогда rangeOfCharacterFromSet: вернет диапазон {NSNotFound, 0}

Набор символов будет подобен [NSCharacterSet symbolCharacterSet] или вашему собственному набору. Обратите внимание, что вы также можете инвертировать наборы символов, чтобы получить набор допустимых символов

6
ответ дан 27 November 2019 в 17:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: