我有一系列UITextFields
,使用户能够输入文本。我需要检查文本中是否存在不允许的字符。我可以有一系列的行,例如:
noOfBadChars = [[textBox1.text componentsSeparatedByString:@"&"] count];
noOfBadChars = noOfBadChars + [[textBox2.text componentsSeparatedByString:@"*"] count];
if (noOfBadChars>1)
{
….
}
但是有没有一种简单的方法来检查这一点,因为我不想单独检查每个坏字符,或者也许有一种方法可以将条目限制为仅 A 到 Z 字符?
最佳答案
NSCharacterSet *charsToRemove = [NSCharacterSet
characterSetWithCharactersInString:@"example"];
example
替换为您要删除的字符。
NSString *finalString = [[originalString
componentsSeperatedByCharactersInCharacterSet: charsToRemove]
componentsJoinedByString: @""];
这会将输入的文本替换为删除了所有字符的文本。
否则,如果你只想检查它是否包含坏字符,你可以这样做:
NSArray *temp = [originalString componentsSeperatedByCharactersInCharacterSet:
charsToRemove];
if ([temp count] > 1) {
// do stuff
}
NSCharacterSet
有很多常用的常量字符集。
NSCharacterSet *charsToKeep = [NSCharacterSet letterCharacterSet];
这将使 charsToKeep
成为一个仅包含字母的字符集。现在您可以使用 invertedSet
获取逆。
NSCharacterSet *charsToRemove = [charsToKeep
invertedSet];
charsToRemove
现在将是一个字符集,其中包含不在 letterCharacterSet
中的每个字符。
你可以在一行中完成所有这些:
NSCharacterSet *charsToRemove = [[NSCharacterSet letterCharacterSet]
invertedSet];
如果您需要字母和数字,请使用 alphanumericCharacterSet
而不是 letterCharacterSet
。
official documentation有所有字符集的列表。
关于ios - 识别字符串中是否有不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20647550/