美文网首页iOS DeveloperiOS技术专题
正则表达式的各种判断

正则表达式的各种判断

作者: 飞奔的羊 | 来源:发表于2016-09-06 16:05 被阅读42次

#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

相关文章

  • 正则表达式的各种判断

    #import "ViewController.h" #import "ZYPredicateTool.h" @i...

  • 正则表达式汇总

    正则表达式判断

  • JS中正则表达式的基本应用

    正则表达式的用途: 1、正则表达式可以用于各种手机号码,身份证号,邮编号,qq号的判断。 如/^1(3|4|5|7...

  • day18-正则表达式

    一、正则表达式语法 正则表达式是用来匹配或者描述字符串的工具。 用处:a.判断字符串是否满足某个条件 --> 判断...

  • 2018-10-23day18总结

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处: a.判断字符串是否满足某个条件---判断输入...

  • Day18-正则表达式

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处: a.判断字符串是否满足某个条件---判断输入...

  • day18-正则表达式

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处: a.判断字符串是否满足某个条件---判断输入...

  • Day17-正则表达式

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处: a.判断字符串是否满足某个条件---判断输入...

  • Python正则表达式实例详解!

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具。 用处: a.判断字符串是否满足某个条件---判断输入...

  • Day-18 - 正则表达式(2018-10-23)

    一、正则表达式语法 正则表达式是用匹配或者描述字符串的工具 用处:a. 判断字符串是否满足某个条件---判断输入的...

网友评论

    本文标题:正则表达式的各种判断

    本文链接:https://www.haomeiwen.com/subject/yhbdettx.html