У меня есть поле UIText, которое содержит поле имени пользователя, затем я хотел бы добавить проверку, чтобы пользователь не мог ввести имя пользователя, отличное от букв, цифр и «_-». знаки препинания. Я пытаюсь использовать NSCharacterset для этого, но безуспешно.
NSScanner *scanner = [NSScanner scannerWithString:username];
NSCharacterSet *letterCharacterSet = [NSCharacterSet letterCharacterSet];
NSCharacterSet *decimalDigitCharacterSet = [NSCharacterSet decimalDigitCharacterSet];
NSCharacterSet *customPunctuationCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"_-."];
if (![scanner scanCharactersFromSet:letterCharacterSet intoString:NULL] &&
![scanner scanCharactersFromSet:customPunctuationCharacterSet intoString:NULL]&&
![scanner scanCharactersFromSet:decimalDigitCharacterSet intoString:NULL]){
*error = [ScreenValidation createNSError:1 message:@"You can only use letters, numbers and punctuation marks."];
return NO;
}
Я понял, что результат из приведенного выше кода неверен, и, насколько я знаю, мне нужно объединить все NSCharacterSet в один для выполнения проверки. Кто-нибудь знает элегантное решение для этого и, конечно же, работает с несколькими местоположениями.
Большое спасибо и С уважением, Маркос