亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS中NSPredicate和NSRegularExpression校驗正則表達式區別

2020-07-26 02:30:59
字體:
來源:轉載
供稿:網友

在代碼開發過程中,我們經常需要用來校驗郵箱、手機號等等,這個時候就需要用到正則表達式。在iOS開發中,能用來做正則校驗的有兩個 NSPredicate 和 NSRegularExpression 。

NSPredicate

NSPredicate 能用來簡單做正則校驗,但是它的問題是存在校驗不出來的情況。

//NSString+RegEx.h#import <Foundation/Foundation.h>@interface NSString (RegEx)#pragma mark - NSPredicate- (BOOL)mars_matchedByPrdicateToRegEx:(NSString *)regEx;@end//NSString+RegEx.m#import "NSString+RegEx.h"@implementation NSString (RegEx)#pragma mark - NSPredicate- (BOOL)mars_matchedByPrdicateToRegEx:(NSString *)regEx{  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx];  return [predicate evaluateWithObject:self];}@end

NSRegularExpression (推薦)

NSRegularExpression 相對于 NSPredicate 功能就強大的多了,這也是iOS正則校驗的正統路子。

//NSString+RegEx.h#import <Foundation/Foundation.h>@interface NSString (RegEx)#pragma mark - NSRegularExpression//校驗是否匹配- (BOOL)mars_matchedToRegEx:(NSString *)regEx;//匹配到的第一個字符串- (NSString *)mars_firstMatchToRegEx:(NSString *)regEx;//所有匹配的字符串- (NSArray *)mars_matchesToRegEx:(NSString *)regEx;//替換匹配到的字符串- (NSString *)mars_stringByReplaceMatchesToRegEx:(NSString *)regEx replaceString:(NSString *)replaceString;@end//NSString+RegEx.m#import "NSString+RegEx.h"@implementation NSString (RegEx)#pragma mark - NSRegualrExpression//校驗是否匹配- (BOOL)mars_matchedToRegEx:(NSString *)regEx{    NSError *error;  NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:regEx options:NSRegularExpressionCaseInsensitive error:&error];    NSUInteger number = [regularExpression numberOfMatchesInString:self options:0 range:NSMakeRange(0, self.length)];  return number != 0;}//匹配到的第一個字符串- (NSString *)mars_firstMatchToRegEx:(NSString *)regEx{  NSError *error;  NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:regEx options:NSRegularExpressionCaseInsensitive error:&error];  NSTextCheckingResult *firstMatch = [regularExpression firstMatchInString:self options:0 range:NSMakeRange(0, self.length)];  if (firstMatch) {    NSString *result = [self substringWithRange:firstMatch.range];    return result;  }  return nil;}//所有匹配的字符串- (NSArray *)mars_matchesToRegEx:(NSString *)regEx{  NSError *error;  NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:regEx options:NSRegularExpressionCaseInsensitive error:&error];    NSArray *matchArray = [regularExpression matchesInString:self options:0 range:NSMakeRange(0, self.length)];    NSMutableArray *array = [NSMutableArray array];  if (matchArray.count != 0) {    for (NSTextCheckingResult *match in matchArray) {      NSString *result = [self substringWithRange:match.range];      [array addObject:result];    }  }    return array;}//替換匹配到的字符串- (NSString *)mars_stringByReplaceMatchesToRegEx:(NSString *)regEx replaceString:(NSString *)replaceString{  NSError *error;  NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:regEx options:NSRegularExpressionCaseInsensitive error:&error];  return [regularExpression stringByReplacingMatchesInString:self options:0 range:NSMakeRange(0, self.length) withTemplate:replaceString];}@end

最后我們看到,還是推薦大家使用NSRegularExpression來做正則的校驗,如果大家在學習中有更好的解決方法或者心得,可以在下方的留言區討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97成人超碰免| 欧美日韩国产中字| 国产玖玖精品视频| 在线精品国产欧美| 国产精品99蜜臀久久不卡二区| 欧美精品videos性欧美| 高清日韩电视剧大全免费播放在线观看| 亚洲激情视频网站| 国产精品视频26uuu| 亚洲精品www久久久| 日本精品久久久久久久| 亚洲精品国产精品国自产观看浪潮| 国产精品久久久久久久久久东京| 国产精品视频永久免费播放| www.日韩.com| 色婷婷亚洲mv天堂mv在影片| 久久精品成人欧美大片| 亚洲国产一区自拍| 久久精品中文字幕一区| 亚洲一区美女视频在线观看免费| 国产精品日韩久久久久| 福利精品视频在线| 中文字幕亚洲第一| 国产欧美在线观看| 久久国产色av| 91久久在线播放| 色诱女教师一区二区三区| 欧美性理论片在线观看片免费| 97久久精品在线| 亚洲国产私拍精品国模在线观看| 亚洲va码欧洲m码| 国产一区二区精品丝袜| 国内揄拍国内精品| 亚洲欧美中文日韩在线| 精品国产一区二区三区四区在线观看| 26uuu国产精品视频| 97久久精品国产| 久久男人av资源网站| 成人免费观看网址| 欧美午夜美女看片| 欧美性jizz18性欧美| 国产欧美日韩中文| 久久久久国产精品免费网站| 久久成人精品视频| 日韩国产欧美精品在线| 日韩av大片在线| 久久青草精品视频免费观看| 日韩在线播放视频| 国产精品综合不卡av| 欧美一级片在线播放| 色系列之999| 亚洲欧洲日产国产网站| 亚洲最新视频在线| 91久久久久久久久久久久久| 欧美肥婆姓交大片| 国产成+人+综合+亚洲欧美丁香花| 韩国精品美女www爽爽爽视频| 久久成人在线视频| 欧美成aaa人片免费看| 欧美限制级电影在线观看| 亚洲第一网站免费视频| 亚洲最大的av网站| 中文综合在线观看| 亚洲精品720p| 久久这里只有精品99| 久久国内精品一国内精品| 久久激情视频久久| 国产精品一二区| 国产精品扒开腿做爽爽爽视频| 九色成人免费视频| 久久久久这里只有精品| 精品无人国产偷自产在线| 久久人人爽人人| 成人日韩在线电影| 亚洲成av人片在线观看香蕉| 亚洲自拍小视频免费观看| 欧洲午夜精品久久久| 欧美成人一二三| 久久99精品视频一区97| 美女久久久久久久久久久| 日本久久久a级免费| 欧美麻豆久久久久久中文| 伊人av综合网| 国产精品国产亚洲伊人久久| 亚洲午夜国产成人av电影男同| 性亚洲最疯狂xxxx高清| 日韩精品免费一线在线观看| 宅男66日本亚洲欧美视频| 久久手机精品视频| 中国china体内裑精亚洲片| 久热精品视频在线观看一区| 91久久精品国产91性色| 4p变态网欧美系列| 亚洲老司机av| 国产精品香蕉在线观看| 精品激情国产视频| 欧美日韩综合视频网址| 一区二区三区四区在线观看视频| 最近2019中文字幕mv免费看| 欧美激情在线有限公司| 中文字幕免费国产精品| 精品久久久国产| 欧美另类老肥妇| 国产欧美日韩综合精品| 亚洲成人黄色在线观看| 亚洲人成电影网站色xx| 欧美激情喷水视频| 国产不卡一区二区在线播放| 日韩欧美成人区| 一夜七次郎国产精品亚洲| 日韩精品亚洲视频| 色婷婷**av毛片一区| 国产成人在线精品| 国产精品久久综合av爱欲tv| 国产欧美一区二区三区视频| 精品视频中文字幕| 国产成人免费91av在线| 免费成人高清视频| 欧美色播在线播放| 久久91亚洲精品中文字幕奶水| 国产成人亚洲精品| 久久久91精品国产| 亚洲福利视频在线| 色偷偷91综合久久噜噜| 亚洲少妇中文在线| 国产免费观看久久黄| 一区二区成人精品| 日韩欧美亚洲一二三区| 欧美性在线观看| 日本一欧美一欧美一亚洲视频| 日韩中文综合网| 精品福利视频导航| 伦伦影院午夜日韩欧美限制| 91久久精品视频| 九色成人免费视频| 亚洲白拍色综合图区| 夜夜嗨av色一区二区不卡| 亚洲欧美制服另类日韩| 国产精品欧美风情| 欧美黄色www| 亚洲精品一区在线观看香蕉| 国产精品va在线| 蜜臀久久99精品久久久久久宅男| 日韩精品在线观看视频| 国产在线观看一区二区三区| 亚洲国产精品va| 日本一区二三区好的精华液| 疯狂欧美牲乱大交777| 欧美另类老女人| 91精品国产乱码久久久久久蜜臀| 高清在线视频日韩欧美| 综合136福利视频在线| 欧美日韩一区二区三区| 日韩视频中文字幕| 欧美日韩激情网| 国内精品国产三级国产在线专| 国产精品夜间视频香蕉| 狠狠色狠狠色综合日日五| 国产精品自拍视频| 精品久久久久久中文字幕| 高清欧美一区二区三区| 综合av色偷偷网| 亚洲第一级黄色片| 国产成人精品国内自产拍免费看|