最近在做注冊(cè)登陸的認(rèn)證,需求:
用戶名為6~12位“字符”
也就是說(shuō)媚污,一個(gè)英文是一個(gè)字符舀瓢,一個(gè)中文是兩個(gè)字符,用正則表達(dá)式好像不容易實(shí)現(xiàn)吧耗美?
沒(méi)什么好說(shuō)的京髓,直接上答案了:
判斷字符數(shù)
//判斷字符串為6~12位“字符”
- (BOOL)isValidateName:(NSString *)name{
NSUInteger character = 0;
for(int i=0; i< [name length];i++){
int a = [name characterAtIndex:i];
if( a >= 0x4e00 && a <= 0x9fa5){ //判斷是否為中文
character +=2;
}else{
character +=1;
}
}
if (character >=6 && character <=12) {
return YES;
}else{
return NO;
}
}
判斷郵箱號(hào)
//如果符合郵箱格式,返回YES
-(BOOL)isValidateEmail:(NSString *)email {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}
判斷密碼為6~20位字符
- (BOOL)isValidatePassword:(NSString *)password{
NSString *regex = @"^[\x21-\x7E]{6,20}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [pred evaluateWithObject:password];
}
判斷手機(jī)格式
+ (BOOL)checkTel:(NSString *)str{
NSString *regex = @"^[1][3-8]+\\d{9}";//手機(jī)號(hào)碼變化大商架,所以沒(méi)有做更精確
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [pred evaluateWithObject:str];;
}
判斷郵編格式為6位數(shù)字
+ (BOOL)checkPostCode:(NSString *)str{
NSString *regex = @"^[0-9]{6}$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [pred evaluateWithObject:str];
}
- 如果有什么疑問(wèn)堰怨,可以在評(píng)論區(qū)一起討論;
- 如果有什么不正確的地方甸私,歡迎指導(dǎo)诚些!
注:本文首發(fā)于 iHTCboy's blog,如若轉(zhuǎn)載皇型,請(qǐng)注明來(lái)源诬烹。