iOS常用的正則表達式(持續(xù)更新)

問題:

隨著項目越來越多,使用正則表達式的次數(shù)也越來越多了,之前只要寫一次就搞定,現(xiàn)在因為有多個數(shù)據(jù)要判斷和檢測,所以最好封裝好一個正則表達式的類,方便以后使用。問題是:現(xiàn)在需求是:如何使用正則表達式來判斷密碼、身份證、手機號碼、郵箱等等之類的?

解決方法:

以下是利用正則表達式來判斷用戶密碼是否匹配要求的,明天再繼續(xù)更新我在項目中經常使用的正則表達

//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正則匹配手機號

+ (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

總結:

我現(xiàn)在也還沒有去看正則表達式,但是找到一篇不錯的學習文章,跟大家一起學習一下。如果有更好的希望大家一起學習交流。

55分鐘學會正則表達式(譯)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容