標籤:als word color ring char 資源 手機 regular sel
一、本篇文章寫作目的
我們項目中經常用到的有:
驗證手機號碼、
驗證郵箱格式、
驗證是否為中文、
驗證網址、
驗證是否含有非法字元、
判斷密碼6-16位同時包含數字和字母、
身份證的驗證。
我先將此功能代碼記錄下來,方便大家傳閱,希望對網友能夠有所協助。
提示:這方面的網上資源還是比較全的,可以自行搜尋。舉例:iOS 手機號碼判斷 Regex
二、具體內容
// 驗證手機號碼+ (BOOL)validateUserPhone:(NSString *)str{ NSString *patternStr = [NSString stringWithFormat:@"^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(16[6])|(17[0,1,3,5-8])|(18[0-9])|(19[8,9]))\\d{8}$"]; NSRegularExpression *regularexpression = [[NSRegularExpression alloc] initWithPattern:patternStr options:NSRegularExpressionCaseInsensitive error:nil]; NSUInteger numberofMatch = [regularexpression numberOfMatchesInString:str options:NSMatchingReportProgress range:NSMakeRange(0, str.length)]; if(numberofMatch > 0) {return YES; }return NO;}
// 校正Email,帶有網域名稱驗證+ (BOOL)validateEmail:(NSString *)_text{ NSString *Regex=@"[0-9a-z._%+-][email protected][0-9a-z._]+\\.[a-z]{2,4}"; NSPredicate *emailTest=[NSPredicate predicateWithFormat:@"SELF MATCHES %@",Regex]; return [emailTest evaluateWithObject:_text];}
// 是否為中文+ (BOOL)isChinese{ NSString *match=@"(^[\u4e00-\u9fa5]+$)"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF matches %@", match]; return [predicate evaluateWithObject:self];}
// 是否是網址+ (BOOL)checkUrl:(id)_strInput{ NSString *_strRegex = @"^(http|https|ftp)://[a-zA-Z0-9]+[.][a-zA-Z0-9]+([.][a-zA-Z0-9]+){0,1}(/[a-zA-Z0-9-_.+=?&%]*)*$"; NSPredicate* _predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",_strRegex]; if ([_predicate evaluateWithObject:_strInput]) { return YES; }else{ return NO; }}
// 是否有非法字元+ (BOOL)isHaveIllegalChar:(NSString *)str{ NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"[]{}(#%-*+=_)\\|~(<>$%^&*)_+ "]; NSRange range = [str rangeOfCharacterFromSet:doNotWant]; return range.location<str.length;}
// 判斷密碼6-16位且同時包含數字和字母+(BOOL)judgePassWordLegal:(NSString *)pass{ BOOL result = false; if ([pass length] >= 6){ // 判斷長度大於6位後再接著判斷是否同時包含數字和字母 NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; result = [pred evaluateWithObject:pass]; } return result;}
// 社會安全號碼+ (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];}
手機號碼格式等判斷