Objective c 包含所有字母变体的字符集

Objective c 包含所有字母变体的字符集,objective-c,regex,string,uitextfield,Objective C,Regex,String,Uitextfield,我正在编写一个注册表单,用户必须输入全名,这意味着这个特定文本字段的唯一可接受的字符应该是(a-Z,a-Z)加上“”(空格),但没有数字,也没有特殊字符,如-`+{等。它还应该接受重音,如:[a,e,ā]以及所有字母的所有其他组合 我现在得到的是: - (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters

我正在编写一个注册表单,用户必须输入全名,这意味着这个特定文本字段的唯一可接受的字符应该是(a-Z,a-Z)加上“”(空格),但没有数字,也没有特殊字符,如-`+{等。它还应该接受重音,如:[a,e,ā]以及所有字母的所有其他组合

我现在得到的是:

- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters {

    NSMutableCharacterSet *mySet = [NSMutableCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZñ. "];

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

这很好,但不包括我需要支持的重音字符,我相信应该有更简单的方法来包含缺少的字符,而不必一次键入一个。

为什么不将特定字符集用于所有字母,包括所有变音符号

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

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

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

为什么不将特定字符集用于所有字母,包括所有变音符号

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

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

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

最简单的解决方案是先从
字符中删除变音符号。
最简单的解决方案是先从
字符中删除
字符中的变音符号。
该死的…在模拟器上,它工作不正常,我只是试了一下n设备,但这不包括也应允许的字符集“”(空格)。只需将其添加到字符集,然后(编辑)。你也可以添加整个
空白字符集
。@Sulthan:答案很好,效果很好。你介意解释一下吗?@TejasK我不知道需要解释什么。一个包含所有字符的集合,我们在该集合中添加空格字符,然后检查字符串是否包含反转集合中的字符…@Sulthan-怎么做s Inversing letterCharacterSet允许使用重音字符?即使应用了
InversedSet
该死的…在模拟器上它工作不正常,我只是在设备上试用了它,但它不包括字符“”(空格)也应该允许这样做,只需将其添加到角色集中即可(编辑)。你也可以添加整个
空白字符集
。@Sulthan:答案很好,效果很好。你介意解释一下吗?@TejasK我不知道需要解释什么。一个包含所有字符的集合,我们在该集合中添加空格字符,然后检查字符串是否包含反转集合中的字符…@Sulthan-怎么做s反转字母字符集允许使用重音字符?即使在应用
invertdset