我使用UITextField
用户输入用户名,并希望限制除句点和下划线之外的特殊字符。我最初开始使用solution from this SO question,直到我意识到我不想仅限于字母数字字符,而且还允许亚洲和中东语言字符。有没有办法让我能够做到这一点?
谢谢!
更新
根据rmaddy的建议,以下是我目前正在使用的内容:
- (BOOL)userNameIsAcceptable: (NSString *)userNameInputted
{
NSCharacterSet *userNameAcceptedInput = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
NSString *filteredUserName = [[userNameInputted componentsSeparatedByCharactersInSet:userNameAcceptedInput] componentsJoinedByString:@""];
NSLog(@"The filtered result %@", filteredUserName);
return [userNameAcceptedInput isEqual:filteredUserName];
}
答案 0 :(得分:2)
使用其他问题的解决方案,但不要使用固定字母构建字符集,而是使用标准NSCharacterSet alphanumericCharacterSet
。
答案 1 :(得分:0)
也许在循环中手动测试字符串中的unicode字符对包含你需要的unicode集的范围? 我做了快速检查,看起来unicode套日语字母通常密集,除了一些特殊字符 - 我看过这里http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml但我猜相似也应该对其他语言有效。