您的位置:首页 > 运维架构

《Photoshop CS5 The Missing Manual》 - 书摘精要

2012-06-24 10:14 369 查看
#pragma mark -验证手机号码的正则表达式- (BOOL)checkTel:(NSString *)str{ if ([str length] == 0) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"手机号不能为空" message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; return NO; } NSString *regex = @"^((13[0-9])|(147)|(15[^4,\\D])|(18[01,5-9]))\\d{8}$"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; BOOL isMatch = [pred evaluateWithObject:str]; if (!isMatch) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请输入正确的手机号码" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; return NO; } return YES;}

#pragma mark -邮箱验证-(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];}

#pragma mark - 验证***是否合法-(BOOL) chk18PaperId:(NSString *) sPaperId{ //判断位数 if ([sPaperId length] != 15 && [sPaperId length] != 18) { return NO; } NSString *carid = sPaperId; long lSumQT =0; //加权因子 int R[] ={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; //校验码 unsigned char sChecker[11]={'1','0','X', '9', '8', '7', '6', '5', '4', '3', '2'}; //将15位***号转换成18位 NSMutableString *mString = [NSMutableString stringWithString:sPaperId]; if ([sPaperId length] == 15) { [mString insertString:@"19" atIndex:6]; long p = 0; const char *pid = [mString UTF8String]; for (int i=0; i<=16; i++) { p += (pid[i]-48) * R[i]; } int o = p%11; NSString *string_content = [NSString stringWithFormat:@"%c",sChecker[o]]; [mString insertString:string_content atIndex:[mString length]]; carid = mString; } //判断地区码 NSString * sProvince = [carid substringToIndex:2]; if (![self areaCode:sProvince]) { return NO; } //判断年月日是否有效 //年份 int strYear = [[self getStringWithRange:carid Value1:6 Value2:4] intValue]; //月份 int strMonth = [[self getStringWithRange:carid Value1:10 Value2:2] intValue]; //日 int strDay = [[self getStringWithRange:carid Value1:12 Value2:2] intValue]; NSTimeZone *localZone = [NSTimeZone localTimeZone]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; [dateFormatter setTimeZone:localZone]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date=[dateFormatter dateFromString:[NSString stringWithFormat:@"%d-%d-%d 12:01:01",strYear,strMonth,strDay]]; if (date == nil) { return NO; } const char *PaperId = [carid UTF8String]; //检验长度 if( 18 != strlen(PaperId)) return -1; //校验数字 for (int i=0; i<18; i++) { if ( !isdigit(PaperId[i]) && !(('X' == PaperId[i] || 'x' == PaperId[i]) && 17 == i) ) { return NO; } } //验证最末的校验码 for (int i=0; i<=16; i++) { lSumQT += (PaperId[i]-48) * R[i]; } if (sChecker[lSumQT%11] != PaperId[17] ) { return NO; } return YES;}
/** * 功能:判断是否在地区码内 * 参数:地区码 */
-(BOOL)areaCode:(NSString *)code{ NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; [dic setObject:@"北京" forKey:@"11"]; [dic setObject:@"天津" forKey:@"12"]; [dic setObject:@"河北" forKey:@"13"]; [dic setObject:@"山西" forKey:@"14"]; [dic setObject:@"内蒙古" forKey:@"15"]; [dic setObject:@"辽宁" forKey:@"21"]; [dic setObject:@"吉林" forKey:@"22"]; [dic setObject:@"黑龙江" forKey:@"23"]; [dic setObject:@"上海" forKey:@"31"]; [dic setObject:@"江苏" forKey:@"32"]; [dic setObject:@"浙江" forKey:@"33"]; [dic setObject:@"安徽" forKey:@"34"]; [dic setObject:@"福建" forKey:@"35"]; [dic setObject:@"江西" forKey:@"36"]; [dic setObject:@"山东" forKey:@"37"]; [dic setObject:@"河南" forKey:@"41"]; [dic setObject:@"湖北" forKey:@"42"]; [dic setObject:@"湖南" forKey:@"43"]; [dic setObject:@"广东" forKey:@"44"]; [dic setObject:@"广西" forKey:@"45"]; [dic setObject:@"海南" forKey:@"46"]; [dic setObject:@"重庆" forKey:@"50"]; [dic setObject:@"四川" forKey:@"51"]; [dic setObject:@"贵州" forKey:@"52"]; [dic setObject:@"云南" forKey:@"53"]; [dic setObject:@"西藏" forKey:@"54"]; [dic setObject:@"陕西" forKey:@"61"]; [dic setObject:@"甘肃" forKey:@"62"]; [dic setObject:@"青海" forKey:@"63"]; [dic setObject:@"宁夏" forKey:@"64"]; [dic setObject:@"新疆" forKey:@"65"]; [dic setObject:@"台湾" forKey:@"71"]; [dic setObject:@"香港" forKey:@"81"]; [dic setObject:@"澳门" forKey:@"82"]; [dic setObject:@"国外" forKey:@"91"]; if ([dic objectForKey:code] == nil) { return NO; } return YES;}
/** * 功能:获取指定范围的字符串 * 参数:字符串的开始小标 * 参数:字符串的结束下标 */-(NSString *)getStringWithRange:(NSString *)str Value1:(NSInteger)value1 Value2:(NSInteger )value2;{ return [str substringWithRange:NSMakeRange(value1,value2)];}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: