Objective-C检查字符串中的不允许字符

Chr*_*art 2 string objective-c

在objective-c中,我如何才能使它只允许带有az字符的字符串?IE没有&字符,没有 - 字符等

谢谢!Christian Stewart

zne*_*eak 10

NSCharacterSets将是这里的关键.首先,您需要字母字符的字符集:

NSCharacterSet* letters = [NSCharacterSet characterSetWithRange:NSMakeRange('a', 26)];
Run Code Online (Sandbox Code Playgroud)

然后,如果要检查字符串是否包含不是字母的字符,可以使用此集的反转:

NSCharacterSet* notLetters = [letters invertedSet];
Run Code Online (Sandbox Code Playgroud)

然后使用NSString's rangeOfCharacterFromSet:with notLetters,如果范围没有NSNotFound,则字符串中有禁用字符.

NSRange badCharacterRange = [myString rangeOfCharacterFromSet:notLetters];
if (badCharacterRange.location != NSNotFound) // found bad characters
Run Code Online (Sandbox Code Playgroud)