我正在使用注册表单,用户必须输入其全名,这意味着此特定文本字段的唯一可接受字符应为(AZ,az)加“”(空格) )但没有数字,也没有特殊的特征,例如-` +¨¨_{等它还应该接受重音,例如:[à,é,û]以及所有其他字母组合。< / p>
我现在拥有的是:
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters {
NSMutableCharacterSet *mySet = [NSMutableCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñ. "];
return ([characters rangeOfCharacterFromSet:[mySet invertedSet]].location == NSNotFound);
}
哪个工作正常,但不包括我需要支持的重音字符,我确信应该有更简单的方法来包含丢失的字符,而不必一次输入一个。
答案 0 :(得分:2)
为什么不使用包含所有变音符号的所有字母的特定字符集?
NSMutableCharacterSet *mySet = [[NSCharacterSet letterCharacterSet] mutableCopy];
[mySet addCharactersInString:@" "];
return ([characters rangeOfCharacterFromSet:[mySet invertedSet]].location == NSNotFound);
这不仅包括所有变音符号,还包括所有非英语字母,例如:俄语字母。