正则表达式验证

https://github.com/fenglingdeyi/Regular

在iOS开发中,在登录和注册以及个人中心中经常会用到一些格式验证,比如身份证、手机号、密码等等,为了在平时用着方便,我对一些常用的验证进行了封装:


//验证手机号
//手机号简单
+ (BOOL)checkTelNumber:(NSString*) telNumber;

//手机号复杂
+(BOOL)checkPhoneNumber:(NSString *)telNumber;

//座机
+(BOOL) checkphoneTelNumbel:(NSString *)telNumbel;

#pragma 正则匹配用户密码6-18位数字和字母_组合

+ (BOOL)checkPassword:(NSString*) password;
#pragma 正则匹配用户身份证号15或18位
+ (BOOL)checkUserIdCard:(NSString*)idCard;

#pragma 正则匹配URL

+ (BOOL)checkURL : (NSString*) url;
//验证邮箱
+(BOOL) checkEmail:(NSString *)email;

//输入只能是中文、英文和下划线

+(BOOL) checkName:(NSString *)userName;
具体实现方法:

+ (BOOL)checkTelNumber:(NSString*) telNumber{

    NSString*pattern =@"^1+[3578]+\\d{9}";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:telNumber];
    
    return isMatch;
}
//    private static final String REGEX_MOBILE_EXACT = "^((13[0-9])|(14[5,7])|(15[0-3,5-8])|(17[0,3,5-8])|(18[0-9])|(147))\\d{8}$";

+(BOOL)checkPhoneNumber:(NSString *)telNumber{

    NSString*pattern =@"^((13[0-9])|(14[5,7])|(15[0-3,5-8])|(17[0,3,5-8])|(18[0-9])|(147))\\d{8}$";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:telNumber];
    
    return isMatch;
}


+(BOOL) checkphoneTelNumbel:(NSString *)telNumber{

    NSString*pattern =@"^0\\d{2,3}[- ]?\\d{7,8}";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:telNumber];
    
    return isMatch;

}

+ (BOOL)checkPassword:(NSString*) password{

    
    NSString*pattern =@"[a-zA-Z0-9]\\w{5,17}";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:password];
    
    return isMatch;

}

+ (BOOL)checkUserIdCard:(NSString*)idCard{

    NSString*pattern =@"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:idCard];
    return isMatch;

}

+ (BOOL)checkURL : (NSString*) url{

    NSString*pattern =@"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:url];
    
    return isMatch;
}

+(BOOL) checkEmail:(NSString *)email{

    NSString*pattern =@"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:email];
    
    return isMatch;
}

//
+(BOOL) checkName:(NSString *)userName{
    
    NSString*pattern =@"^[\u4E00-\u9FA5A-Za-z0-9_]+$";
    
    NSPredicate*pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",pattern];
    
    BOOL isMatch = [pred evaluateWithObject:userName];
    
    return isMatch;

}

github下载链接地址: https://github.com/fenglingdeyi/Regular


参考链接:http://toutiao.com/i6231678548520731137/

                  http://www.jianshu.com/p/00da4d87b777




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值