正则表达式的使用
来源:互联网 发布:翻墙软件大全 编辑:程序博客网 时间:2024/06/03 19:47
在项目中经常会要求用户输入一些信息,比如注册 登录 输入手机号,验证码,填写个人信息 如填写身份证等,有时候会输入错误,为了更好的提醒到用户,项目中用到了 正则匹配。
对于正则表达式的讲解可以参考此链接:正则表达式的使用
在项目中用到了字符串分类,通过对输入的字符进行正则匹配
#import <Foundation/Foundation.h>@interface NSString (Custom)typedef enum { QCValibTypePhone = 0,//电话 QCValibTypeVerifyCode,//验证码 QCValibTypeLoginPassword,//登录密码 QCValibTypePayPassword,//支付密码 QCValibTypeIDCard,//身份证 QCValibTypeLogisticsNumber,//物流单号 QCValibTypeEmail,//邮箱 QCValibTypeBankCard//银行卡}QCValibType;//判断是否匹配- (BOOL)isValib:(QCValibType)type;
NSString 分类.m 文件相应实现如下:
#import "NSString+Custom.h"@implementation NSString (Custom)- (BOOL)isValib:(QCValibType)type{ NSString *pattern = [self patternWithType:type]; //过滤判断是否匹配 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern]; BOOL isInvalid = ![predicate evaluateWithObject:self]; if (isInvalid) { //不匹配 提示错误信息 [self errorTipWithType:type]; } return isInvalid;}- (NSString *)patternWithType:(QCValibType)type { NSString *pattern = nil; switch (type) { case QCValibTypePhone: pattern = @"^1[3|4|5|7|8][0-9]\\d{8}$"; break; case QCValibTypeVerifyCode: pattern = @"^\\d{6}$"; break; case QCValibTypeLoginPassword: pattern = @"^\\w{6,}$"; break; case QCValibTypePayPassword: pattern = @"^\\d{6}$"; break; case QCValibTypeIDCard: pattern = @"^\\d{15}|\\d{17}\\w$"; break; case QCValibTypeLogisticsNumber: pattern = @"^\\d{12}$"; break; case QCValibTypeEmail: pattern = @"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; break; default: break; } return pattern;}//提示错误信息- (void)errorTipWithType:(QCValibType)type { switch (type) { case QCValibTypePhone: NSLog(@"手机号格式不正确!"); break; case QCValibTypeVerifyCode: NSLog(@"验证码格式不正确!"); break; case QCValibTypeLoginPassword: NSLog(@"登录密码格式不正确!"); break; case QCValibTypePayPassword: NSLog(@"支付密码格式不正确!"); break; case QCValibTypeIDCard: NSLog(@"身份证号格式不正确!"); break; case QCValibTypeLogisticsNumber: NSLog(@"物流编号格式不正确!"); break; case QCValibTypeEmail: NSLog(@"邮箱格式不正确!"); break; default: break; }}
这样的话就可以利用这个NSString分类 进行相应的判断 例如判断输入的手机号码是否是正确的格式:
if ([self.phoneTF.text isValib:QCValibTypePhone]) { NSLog(@"手机格式不正确!"); return; }
0 0
- 正则表达式的使用
- 正则表达式的使用:
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式“/”的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- 正则表达式的使用
- ~一个数组实现两个栈~
- 160. Intersection of Two Linked Lists
- 牛客网-明明的随机数
- 8、理解进程调度时机跟踪分析进程调度与进程切换的过程
- 关于《OPENCL异构并行计算》中工作组间同步的分析
- 正则表达式的使用
- 基于Maven的SSM整合详解
- MySQL (6) innoDB 和 MyISAM
- Linux基本命令:文件操作
- maven管理的项目配置找不到jar包中的类
- Java反射机制的一些总结
- 排序算法
- matplotlib学习
- 字符串 POJ-1007