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

优质内容筛选与推荐>>
1、快速排序,希尔排序,插入排序比较次数采样结果
2、处理隐藏僵尸卷
3、四周第二次课(1月3日) 5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴
4、四位密码锁*电子密码锁的设计
5、构建之法阅读笔记04


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号