包含所有字母变体的CharacterSet

时间:2017-05-09 09:51:28

标签: objective-c regex string uitextfield

我正在使用注册表单,用户必须输入其全名,这意味着此特定文本字段的唯一可接受字符应为(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);
}

哪个工作正常,但不包括我需要支持的重音字符,我确信应该有更简单的方法来包含丢失的字符,而不必一次输入一个。

1 个答案:

答案 0 :(得分:2)

为什么不使用包含所有变音符号的所有字母的特定字符集?

NSMutableCharacterSet *mySet = [[NSCharacterSet letterCharacterSet] mutableCopy];
[mySet addCharactersInString:@" "];

return ([characters rangeOfCharacterFromSet:[mySet invertedSet]].location == NSNotFound);

这不仅包括所有变音符号,还包括所有非英语字母,例如:俄语字母。