問題:
隨著項(xiàng)目越來越多吴超,使用正則表達(dá)式的次數(shù)也越來越多了,之前只要寫一次就搞定鸯乃,現(xiàn)在因?yàn)橛卸鄠€(gè)數(shù)據(jù)要判斷和檢測(cè)鲸阻,所以最好封裝好一個(gè)正則表達(dá)式的類,方便以后使用缨睡。問題是:現(xiàn)在需求是:如何使用正則表達(dá)式來判斷密碼鸟悴、身份證、手機(jī)號(hào)碼奖年、郵箱等等之類的细诸?
解決方法:
以下是利用正則表達(dá)式來判斷用戶密碼是否匹配要求的,明天再繼續(xù)更新我在項(xiàng)目中經(jīng)常使用的正則表達(dá)
//FuPredicate.h
#import
@interfaceFuPredicate :NSObject
#pragma正則匹配用戶密碼6-16位數(shù)字和字母的組合
+ (BOOL)checkPassword:(NSString*)password;
#pragma正則匹配充值金額為非零的正整數(shù)
+ (BOOL)checkMoneyValue:(NSString*)money;
#pragma正則匹配Email
+ (BOOL)checkEmail:(NSString*)email;
#pragma正則匹配手機(jī)號(hào)
+ (BOOL)checkPhoneNo:(NSString*)PhoneNo;
#pragma正則匹配用戶身份證號(hào)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
總結(jié):
我現(xiàn)在也還沒有去看正則表達(dá)式陋守,但是找到一篇不錯(cuò)的學(xué)習(xí)文章震贵,跟大家一起學(xué)習(xí)一下。如果有更好的希望大家一起學(xué)習(xí)交流水评。