由于最近开发ios的程序,由于需要正则表达式的验证,比较麻烦。
正则表达式的用法比较多,可以网上搜索一下,但是使用的过程中会根据问题区分。
目前的需求就是,输入的内容不可以是汉字,也不可以有空格,代码如下,判断汉字主要是根据字符所占用的字节数判断。
BOOL hasChinese = NO;
int length = [str length];
for (int i=0; i<length; i++) {
NSRange range = NSMakeRange(i, 1);
NSString *subString = [str substringWithRange:range];
const char *cString = [subString UTF8String];
if (strlen(cString) == 3)
{
hasChinese = YES;
}
}
if (hasChinese) {
error = [selferror:LoginCheckErrorEmailInvalidatedescription:@"email Invalidate"];
}else {
NSString * regex = @"[\\S]{1,}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isMatch = [pred evaluateWithObject:str];
if (!isMatch) {
error = [selferror:LoginCheckErrorPasswordInvalidatedescription:@"Password Invalidate"];
}
}
}