#import "ViewController.h"
#import "ZYPredicateTool.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *IDTextField;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
// 例子
- (IBAction)testName:(id)sender {
if ([ZYPredicateTool validateTrueName:self.IDTextField.text] )
{
NSLog(@"是姓名");
}else{
NSLog(@"不是姓名");
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
以上是调用
-------------华丽的分割线---------------
.h 文件
#import@interface ZYPredicateTool : NSObject
// 检验密码,6~20位,输入(字母或者数字)
+ (BOOL)validatePassword:(NSString *)passWord;
// 检验是否为用户名
+ (BOOL)validateTrueName:(NSString *)trueName;
// 检验是否是身份证号码
+ (BOOL) validateIdentityCard: (NSString *)identityCard;
// 邮箱
+ (BOOL) validateEmail:(NSString *)email;
// 手机号码验证
+ (BOOL) validateMobile:(NSString *)mobile;
// 车牌号验证
+ (BOOL) validateCarNo:(NSString *)carNo;
// 车型
+ (BOOL) validateCarType:(NSString *)CarType;
// 昵称
+ (BOOL) validateNickname:(NSString *)nickname;
// url
+ (BOOL) validateURL: (NSString *)url;
@end
.m 文件
#import "ZYPredicateTool.h"
@implementation ZYPredicateTool
// 检验密码,6~20位,输入(字母或者数字)
+ (BOOL)validatePassword:(NSString *)passWord
{
NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
return [passWordPredicate evaluateWithObject:passWord];
}
// 检验是否为用户名
+ (BOOL)validateTrueName:(NSString *)trueName
{
NSString *regex2 = @"^[\u4e00-\u9fa5]{2,20}";
NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
return [identityCardPredicate evaluateWithObject:trueName];
}
// 检验是否是身份证号码
+ (BOOL)validateIdentityCard:(NSString *)identityCard
{
BOOL flag;
if (identityCard.length <= 0) {
flag = NO;
return flag;
}
NSString *regex2 = @"^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}[xX0-9]{1}$";
NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];
return [identityCardPredicate evaluateWithObject:identityCard];
}
// 邮箱
+ (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) validateMobile:(NSString *)mobile
{
//手机号以13, 15,18,17 开头,八个 \d 数字字符
NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9])|(17[0,0-9]))\\d{8}$";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
return [phoneTest evaluateWithObject:mobile];
}
// 车牌号验证
+ (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];
}
// 车型
+ (BOOL) validateCarType:(NSString *)CarType
{
NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$";
NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex];
return [carTest evaluateWithObject:CarType];
}
// 用户名
+ (BOOL) validateUserName:(NSString *)name
{
NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";
NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex];
BOOL B = [userNamePredicate evaluateWithObject:name];
return B;
}
// 昵称
+ (BOOL) validateNickname:(NSString *)nickname
{
NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];
return [passWordPredicate evaluateWithObject:nickname];
}
// url
+ (BOOL) validateURL: (NSString *)url
{
NSString *regex = @"\\bhttps?://[a-zA-Z0-9\\-.]+(?::(\\d+))?(?:(?:/[a-zA-Z0-9\\-._?,'+\\&%$=~*!():@\\\\]*)+)?";
NSPredicate *urlPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [urlPredicate evaluateWithObject:url];
}
@end