https://github.com/fenglingdeyi/Regular
github下载链接地址: 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