前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS常用的正则表达式(持续更新)

iOS常用的正则表达式(持续更新)

作者头像
傅_hc
发布2018-06-28 17:12:58
4780
发布2018-06-28 17:12:58
举报
文章被收录于专栏:iOS开发随笔

问题:

随着项目越来越多,使用正则表达式的次数也越来越多了,之前只要写一次就搞定,现在因为有多个数据要判断和检测,所以最好封装好一个正则表达式的类,方便以后使用。问题是:现在需求是:如何使用正则表达式来判断密码、身份证、手机号码、邮箱等等之类的?

解决方法:

以下是利用正则表达式来判断用户密码是否匹配要求的,明天再继续更新我在项目中经常使用的正则表达

//FuPredicate.h

#import

@interfaceFuPredicate :NSObject

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

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

#pragma正则匹配充值金额为非零的正整数

+ (BOOL)checkMoneyValue:(NSString*)money;

#pragma正则匹配Email

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

#pragma正则匹配手机号

+ (BOOL)checkPhoneNo:(NSString*)PhoneNo;

#pragma正则匹配用户身份证号15或18位

+ (BOOL)checkIDCard: (NSString*)idCard;

#pragma正则匹配URL

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

@end

//FuPredicate.m

#import"FuPredicate.h"

@implementationFuPredicate

+(BOOL)checkPassword:(NSString*)password

{

NSString* pattern =@"^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,16}";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern];

BOOL isMatch = [predicate evaluateWithObject:password];

return isMatch;

}

+ (BOOL)checkMoneyValue:(NSString*)money

{

NSString* pattern =@"^[1-9][0-9]*$";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern];

BOOL isMatch = [predicate evaluateWithObject:money];

return isMatch;

}

+ (BOOL)checkEmail:(NSString*)email

{

NSString* pattern =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern];

BOOL isMatch = [predicate evaluateWithObject:email];

return isMatch;

}

+ (BOOL)checkPhoneNo:(NSString*)PhoneNo

{

NSString* pattern =@"^1[345678]\\d{9}$";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

BOOL isMatch = [predicate evaluateWithObject:PhoneNo];

return isMatch;

}

+ (BOOL)checkIDCard:(NSString*)idCard

{

NSString* pattern =@"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

BOOL isMatch = [predicate evaluateWithObject:idCard];

return isMatch;

}

+ (BOOL)checkURL:(NSString*)url

{

NSString* pattern =@"http(s)?:\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- .\\/?%&=]*)?";

NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

BOOL isMatch = [predicate evaluateWithObject:url];

return isMatch;

}

@end

总结:

我现在也还没有去看正则表达式,但是找到一篇不错的学习文章,跟大家一起学习一下。如果有更好的希望大家一起学习交流。

55分钟学会正则表达式(译)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015.12.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题:
  • 解决方法:
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档