【发布时间】:2014-10-01 18:04:12
【问题描述】:
我正在使用此代码检查用户输入字符串是否在 iOS6 中仅包含字母数字字符:
NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet];
NSString *trimmedString = [text stringByTrimmingCharactersInSet:alphaSet];
BOOL valid = [trimmedString isEqualToString:@""];
但这是运行这段代码的结果:
注意text(待检查的字符串)只包含中文字符,但经过alphaSet修剪后变为空字符串并通过验证。
我也试过这段代码,但它也不起作用:
- (BOOL) isAlphaNumeric: (NSString *) text
{
NSCharacterSet *unwantedCharacters =
[[NSCharacterSet alphanumericCharacterSet] invertedSet];
return ([text rangeOfCharacterFromSet:unwantedCharacters].location == NSNotFound) ? YES : NO;
}
我不确定我在哪里做错了。在进行检查之前,我是否需要以某种方式对输入文本进行编码?
目前我直接从iOS6的- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text的最后一个replacementText参数中获取字符串。
谢谢!
【问题讨论】:
标签: ios objective-c string unicode