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分钟学会正则表达式(译)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS122-移动混合开发研究院

RDVTabBarController--可自由定制的iOS底部导航控件

RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来。 RDVTabBarControlle...

233100
来自专栏岑志军的专栏

iOS获取当前网络环境

22550
来自专栏DannyHoo的专栏

第三方库AF之Post

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

9610
来自专栏技术之路

精典算法之详解 河内之塔

河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年...

21080
来自专栏岑志军的专栏

iOS判断运营商类型

32370
来自专栏wOw的Android小站

[Objective-C] KVC 和 KVO

KVC是一种用间接方式访问类的属性的机制。比如你要给一个类中的属性赋值或者取值,可以直接通过类和点运算符实现,当然也可以使用KVC。不过对于私有属性,点运算符就...

23410
来自专栏王大锤

iOS 根据生日得到生肖,星座,年龄的算法

53560
来自专栏進无尽的文章

编码篇-持久化NSUserDefaults

NSUserDefaults类,以字典形式保存数据,IOS会自动把字典中的键值对转换成对应的XML文件(也就是plist文件),这个文件会被保存到APP的沙盒目...

13710
来自专栏Alice

UIPickView的简单使用

好记性不如烂笔头,勤做笔记。 摘要: 1.UIPickVIew 几个重要的属性   (1)datePickerMode UIDatePickerModeTime...

24050
来自专栏陈满iOS

[iOS学习笔记]·FMDB:第三方数据库处理框架·用法示例篇(附源码Demo)

FMDatabase的实例对象_db在执行SQL语句的时候采取类似下面的代码。其中,有两种风格,一种在executeUpdate方法后面直接写上字符串的字面量语...

19920

扫码关注云+社区

领取腾讯云代金券