iOS开发中常用字符串验证处理操作
来源:互联网 发布:转发小视频软件 编辑:程序博客网 时间:2024/05/29 17:10
特殊验证
手机号验证
//手机号以13, 15,18开头,八个 \d 数字字符 NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex]; return [phoneTest evaluateWithObject:mobile];
手机号归属验证
密码格式验证
// 正则匹配用户密码6-18位数字和字母组合+ (BOOL)checkPassword:(NSString*) password{NSString*pattern =@"^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}";NSPredicate*pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern];BOOLisMatch = [predevaluateWithObject:password];returnisMatch;}
用户名格式验证
正则匹配用户姓名,20位的中文或英文+ (BOOL)checkUserName : (NSString*) userName{NSString*pattern =@"^[a-zA-Z\u4E00-\u9FA5]{1,20}";NSPredicate*pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern];BOOLisMatch = [predevaluateWithObject:userName];returnisMatch;}
邮箱验证
+ (BOOL) validateEmail:(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];}
银行卡号验证
+ (BOOL)isBankCard:(NSString *)cardNo{ if (cardNo.length < 16) { return NO; } NSInteger oddsum = 0; //奇数求和 NSInteger evensum = 0; //偶数求和 NSInteger allsum = 0; NSInteger cardNoLength = (NSInteger)[cardNo length]; // 取了最后一位数 NSInteger lastNum = [[cardNo substringFromIndex:cardNoLength-1] intValue]; //测试的是除了最后一位数外的其他数字 cardNo = [cardNo substringToIndex:cardNoLength - 1]; for (NSInteger i = cardNoLength -1 ; i>=1;i--) { NSString *tmpString = [cardNo substringWithRange:NSMakeRange(i-1, 1)]; NSInteger tmpVal = [tmpString integerValue]; if (cardNoLength % 2 ==1 ) {//卡号位数为奇数 if((i % 2) == 0){//偶数位置 tmpVal *= 2; if(tmpVal>=10) tmpVal -= 9; evensum += tmpVal; }else{//奇数位置 oddsum += tmpVal; } }else{ if((i % 2) == 1){ tmpVal *= 2; if(tmpVal>=10) tmpVal -= 9; evensum += tmpVal; }else{ oddsum += tmpVal; } } } allsum = oddsum + evensum; allsum += lastNum; if((allsum % 10) == 0) return YES; else return NO;}
银行卡号所属银行验证
+(NSString *)bankOfCard:(NSString *)cardNum{ //所需plist附件见文末 NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"BankAndBin" ofType:@"plist"]; NSDictionary *dicBank = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; NSString *strPreTen = [self getPrefixStringToIndex:10 fromString:cardNum];//[cardNum substringToIndex:10];//前10位 NSString *strPreNine = [self getPrefixStringToIndex:9 fromString:cardNum];//[cardNum substringToIndex:9];//前9位 NSString *strPreEight = [self getPrefixStringToIndex:8 fromString:cardNum];//[cardNum substringToIndex:8];//8 NSString *strPreSeven =[self getPrefixStringToIndex:7 fromString:cardNum];//[cardNum substringToIndex:7];//7 NSString *strPreSix = [self getPrefixStringToIndex:6 fromString:cardNum];//[cardNum substringToIndex:6];//前6位 NSString *strPreFive = [self getPrefixStringToIndex:5 fromString:cardNum];//[cardNum substringToIndex:5];//5 NSString *strPreFour = [self getPrefixStringToIndex:4 fromString:cardNum];//[cardNum substringToIndex:4];//4 NSString *strPreThree = [self getPrefixStringToIndex:3 fromString:cardNum];//[cardNum substringToIndex:3];//前三位 NSString *strBankInfo = @""; if (dicBank[strPreThree]) { strBankInfo = dicBank[strPreThree]; }else if (dicBank[strPreFour]){ strBankInfo = dicBank[strPreFour]; }else if (dicBank[strPreFive]){ strBankInfo = dicBank[strPreFive]; }else if (dicBank[strPreSix]){ strBankInfo = dicBank[strPreSix]; }else if (dicBank[strPreSeven]){ strBankInfo = dicBank[strPreSeven]; }else if (dicBank[strPreEight]){ strBankInfo = dicBank[strPreEight]; }else if (dicBank[strPreNine]){ strBankInfo = dicBank[strPreNine]; }else if (dicBank[strPreTen]){ strBankInfo = dicBank[strPreTen]; }else{ strBankInfo = @"未找到匹配的发卡银行"; return strBankInfo; } NSRange range =[strBankInfo rangeOfString:@" "]; NSString *bankName = [strBankInfo substringToIndex:range.location]; return bankName;}+(NSString *)getPrefixStringToIndex:(NSInteger)index fromString:(NSString *)strAll{ if (strAll.length>=index) { return [strAll substringToIndex:index]; }else{ return @" "; }}
身份证号验证
+ (BOOL) validateIdentityCard: (NSString *)identityCard{ BOOL flag; if (identityCard.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$"; NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [identityCardPredicate evaluateWithObject:identityCard];}
车牌号验证
//车牌号验证+ (BOOL) validateCarNo:(NSString *)carNo{ NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex]; NSLog(@"carTest is %@",carTest); return [carTest evaluateWithObject:carNo];}
银行卡号归属行验证文件:
0 0
- iOS开发中常用字符串验证处理操作
- iOS 字符串常用操作
- iOS 字符串常用操作
- iOS开发 字符串处理
- 处理PHP中字符串的常用操作及函数
- 处理字符串的常用操作
- C字符串常用操作处理
- ios中字符串处理
- iOS字符串常用处理方法
- iOS中时间/日期处理NSDate的常用接口操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- ios 常用字符串的操作
- 物理cpu 逻辑cpu cpu核数
- 关于Linux系统清理/tmp/文件夹的原理
- bootbox自定义dialog、confirm、alert样式,以及基本设置方法setDefaults中可用参数
- 单机搭建spark环境
- iOS开发 - 清除缓存
- iOS开发中常用字符串验证处理操作
- 配置spark源码阅读windows环境
- 从事C和C++开发者快速学python(三)
- 一个Linux下C线程池的实现
- Linux学习总结(6)——CenterOS7安装mysql5.5的方法
- 计算Spearman等级相关系数的VBA函数
- leetcode 173. Binary Search Tree Iterator-二叉搜索树迭代|中序遍历
- 如何截取VTK中window的场景
- 数组