正则表达式的使用

来源:互联网 发布:翻墙软件大全 编辑:程序博客网 时间: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
原创粉丝点击