Cocoa中謂詞(Predicate)提供了一個通用的查詢方式處理數據,可以獲取和指定數據的過濾形式,Cocoa實際開發中可以是使用NSPredicate及其父類NSComparisonPredicate和NSCompoundPredicate.其風格類似於SQL查詢語言和正則表達式的混合體,提供了 ...
Cocoa中謂詞(Predicate)提供了一個通用的查詢方式處理數據,可以獲取和指定數據的過濾形式,Cocoa實際開發中可以是使用NSPredicate及其父類NSComparisonPredicate和NSCompoundPredicate.其風格類似於SQL查詢語言和正則表達式的混合體,提供了具有表現力的,自然語言界面來定義一個集合被搜尋的邏輯條件。一般來說稍微操作過資料庫基本上很容易理解其中的方法,至於使用的方法也很簡單。如下代碼是實現方法:
BIDValidateMgr.h 代碼:
// // BIDValidateMgr.h // TongHuiShop // // Created by eJiupi on 14-10-29. // Copyright (c) 2014年 xujinzhong. All rights reserved. // #import <Foundation/Foundation.h> @interface BIDValidateMgr : NSObject //手機號碼驗證 + (BOOL)validateMobile:(NSString *)mobile; //郵箱 + (BOOL)validateEmail:(NSString *)email; //身份證號 + (BOOL)validateIdentityCard: (NSString *)identityCard; @end
BIDValidateMgr.m 實現代碼;
// // BIDValidateMgr.m // TongHuiShop // // Created by eJiupi on 14-10-29. // Copyright (c) 2014年 xujinzhong. All rights reserved. // #import "BIDValidateMgr.h" @implementation BIDValidateMgr //手機號碼驗證 + (BOOL)validateMobile:(NSString *)mobile { //手機號以13, 15,18開頭,八個 \d 數字字元 NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex]; return [phoneTest evaluateWithObject:mobile]; } //郵箱 + (BOOL)validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; return [emailTest evaluateWithObject:email]; } //身份證號 + (BOOL)validateIdentityCard: (NSString *)identityCard { BOOL flag; if (identityCard.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$"; NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [identityCardPredicate evaluateWithObject:identityCard]; } @end