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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:41:53
字體:
來源:轉載
供稿:網友

在代碼開發過程中,我們經常需要用來校驗郵箱、手機號等等,這個時候就需要用到正則表達式。在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來做正則的校驗,如果大家在學習中有更好的解決方法或者心得,可以在下方的留言區討論。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品有码在线观看| 久久av红桃一区二区小说| 日韩av黄色在线观看| 日本午夜精品理论片a级appf发布| 国产精品一区二区三区久久久| 亚洲精品美女久久久久| 久久久精品国产一区二区| 一区二区三区动漫| 日韩成人av在线播放| 欧美激情综合色综合啪啪五月| 欧美日韩一区二区免费在线观看| 久久香蕉国产线看观看av| 亚洲深夜福利视频| 久久久国产一区二区三区| 成人黄色短视频在线观看| 国产情人节一区| 国产97在线|亚洲| 欧美又大又硬又粗bbbbb| 日韩欧美成人免费视频| 日韩av最新在线| 亚洲综合视频1区| 2023亚洲男人天堂| 久久久久久久电影一区| 国产香蕉97碰碰久久人人| 国产精品嫩草影院一区二区| 国语自产在线不卡| 国产成人高潮免费观看精品| 疯狂蹂躏欧美一区二区精品| 国产免费一区二区三区香蕉精| 中文字幕精品www乱入免费视频| 亚洲精品国产精品国自产观看浪潮| 欧美成人精品在线| 26uuu亚洲伊人春色| 久久久久久久久国产| 在线观看欧美www| 97久久精品视频| 亚洲片国产一区一级在线观看| 爽爽爽爽爽爽爽成人免费观看| 国产极品jizzhd欧美| 亚洲影视中文字幕| 国产欧美精品va在线观看| 亚洲成人在线视频播放| 亚洲无亚洲人成网站77777| 精品日韩中文字幕| 国产日韩精品入口| 欧美巨乳在线观看| 日韩国产高清视频在线| 久久久国产精彩视频美女艺术照福利| 亚洲男人天堂2024| 51ⅴ精品国产91久久久久久| 亚洲男人的天堂网站| 欧美日韩亚洲系列| 欧美午夜丰满在线18影院| 亚洲福利视频网| 欧美日韩电影在线观看| 国产成人拍精品视频午夜网站| 国产欧美亚洲视频| 欧美性极品少妇精品网站| 日韩av不卡电影| 日韩在线观看免费全集电视剧网站| 91av免费观看91av精品在线| 国产99视频精品免视看7| 国产福利视频一区二区| 97香蕉超级碰碰久久免费软件| 亚洲国产精品一区二区久| 4p变态网欧美系列| 中文字幕日韩免费视频| 国产精品久久久久久亚洲调教| 欧美成人中文字幕在线| 91大神福利视频在线| 亚洲乱码国产乱码精品精天堂| 欧美日韩精品在线| 亚洲在线一区二区| 欧美激情第一页xxx| 91人人爽人人爽人人精88v| 亚洲精品第一页| 色小说视频一区| 亚洲专区中文字幕| 亚洲一区二区三区四区视频| 国产精品视频在线观看| 黑丝美女久久久| 欧美午夜影院在线视频| 大伊人狠狠躁夜夜躁av一区| 欧美亚洲国产视频| 亚洲激情在线观看| 久久久久久久一区二区| 91免费人成网站在线观看18| 91超碰caoporn97人人| 国产精品第100页| 午夜精品在线视频| 亚洲精品国产精品国自产在线| 亚洲亚裔videos黑人hd| 久久夜色精品国产欧美乱| 最近2019好看的中文字幕免费| 亚洲精品国精品久久99热一| 人人爽久久涩噜噜噜网站| 亚洲理论电影网| 久久久女女女女999久久| 亚洲毛片一区二区| 国产亚洲一级高清| 欧美性猛交xxxx免费看久久久| 亚洲www视频| 国产丝袜一区二区三区| 亚洲国内精品在线| 这里只有精品在线播放| 日韩大片免费观看视频播放| 国内精品免费午夜毛片| 日本久久91av| 最新日韩中文字幕| 久久婷婷国产麻豆91天堂| 国产一区玩具在线观看| 国产欧洲精品视频| 欧美精品videofree1080p| 日韩免费观看在线观看| 国产午夜精品全部视频在线播放| 久久高清视频免费| 久久99精品久久久久久琪琪| 欧美大片免费观看在线观看网站推荐| 久久精品在线视频| 深夜福利亚洲导航| www.日韩视频| 亚洲人成人99网站| 一区三区二区视频| 中文字幕久热精品在线视频| 亚洲国产精品女人久久久| 欧美在线视频观看| 精品在线欧美视频| 亚洲综合精品伊人久久| 狠狠久久亚洲欧美专区| 主播福利视频一区| 日韩精品在线第一页| 国产亚洲综合久久| 亚洲伊人久久大香线蕉av| 日韩中文字幕精品视频| 国产欧美日韩精品在线观看| 精品一区精品二区| 久久久久久高潮国产精品视| 18一19gay欧美视频网站| 日韩在线激情视频| 日本精品久久中文字幕佐佐木| 国产精品久久久久久久av电影| 欧美激情综合色综合啪啪五月| 国产精品高清在线| 欧美成人免费一级人片100| 国产午夜精品理论片a级探花| 欧美乱妇高清无乱码| 国产日韩欧美视频| 成人精品久久av网站| 尤物yw午夜国产精品视频| 亚洲成人激情在线| 亚洲欧美一区二区激情| 国产精品第七十二页| 一区二区三区久久精品| 777国产偷窥盗摄精品视频| 亚洲国产精彩中文乱码av| 亚洲色图偷窥自拍| 成人免费福利视频| www日韩欧美| 亚洲第一视频在线观看| 欧美xxxwww| 亚洲性xxxx| 中文字幕国内精品| 97国产在线视频| 91精品国产91久久久久久吃药|