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

首頁 > 編程 > regex > 正文

iOS中使用正則表達式NSRegularExpression 來驗證textfiled輸入的內容

2020-01-20 22:10:00
字體:
來源:轉載
供稿:網友

何謂正則表達式

正則表達式(regular expression),在計算機科學中,是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。正則表達式這個概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。正則表達式通常縮寫成“regex”,單數有regexp、regex,復數有regexps、regexes、regexen。

正則表達式組成

正則表達式有兩種類型的字符組成

第一種:用來匹配的字符,或者叫常規字符

第二種:控制字符或具有特殊含義的元字符

iphone 4.0以后就開始支持正則表達式的使用了,在ios4.0中正則表達式的使用是使用NSRegularExpression類來調用。

1. 下面一個簡單的使用正則表達式的一個例子:NSRegularExpression 類

-(void)parseString{//組裝一個字符串,需要把里面的網址解析出來NSString *urlString=@"sfdsfhttp://www.baidu.com";//NSRegularExpression類里面調用表達的方法需要傳遞一個NSError的參數。下面定義一個 NSError *error;//http+:[^//s]* 這個表達式是檢測一個網址的。  NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http+:[^//s]*" options:0 error:&error];  if (regex != nil) {  NSTextCheckingResult *firstMatch=[regex firstMatchInString:urlString options:0range:NSMakeRange(0, [urlString length])];  if (firstMatch) {   NSRange resultRange = [firstMatch rangeAtIndex:0]; //等同于 firstMatch.range --- 相匹配的范圍   //從urlString當中截取數據  NSString *result=[urlString substringWithRange:resultRange];  //輸出結果  NSLog(@"%@",result);  }  }}

2.使用正則表達式來判斷

//初始化一個NSRegularExpression 對象,并設置檢測對象范圍為:0-9 NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]*$" options:0 error:nil];    if (regex2)    {//對象進行匹配       NSTextCheckingResult *result2 = [regex2 firstMatchInString:textField.text options:0 range:NSMakeRange(0, [textField.text length])];      if (result2) {      }}

1.判斷郵箱格式是否正確的代碼:NSPredicatel類

//利用正則表達式驗證

NSPredicatel類:主要用來指定過濾器的條件,該對象可以準確的描述所需條件,對每個對象通過謂詞進行篩選,判斷是否與條件相匹配。謂詞是指在計算機中表示計算真假值的函數。原理和用法都類似于SQL查詢中的where,作用相當于數據庫的過濾取。主要用于從集合中分揀出符合條件的對象,也可以用于字符串的正則匹配

-(BOOL)isValidateEmail:(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];}

2.匹配9-15個由字母/數字組成的字符串的正則表達式:

  NSString * regex = @"^[A-Za-z0-9]{9,15}$";  NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];  BOOL isMatch = [pred evaluateWithObject:txtfldPhoneNumber.text];

Cocoa用NSPredicate描述查詢的方式,原理類似于在數據庫中進行查詢

用BETWEEN,IN,BEGINWITH,ENDWITH,CONTAINS,LIKE這些謂詞來構造NSPredicate,必要的時候使用SELF直接對自己進行匹配

//基本的查詢 NSPredicate *predicate; predicate = [NSPredicate predicateWithFormat: @"name == 'Herbie'"];   BOOL match = [predicate evaluateWithObject: car];   NSLog (@"%s", (match) ? "YES" : "NO"); //在整個cars里面循環比較   predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];   NSArray *cars = [garage cars];   for (Car *car in [garage cars]) {     if ([predicate evaluateWithObject: car]) {       NSLog (@"%@", car.name);     }   } //輸出完整的信息   predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];   NSArray *results;   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results); //含有變量的謂詞   NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"name == $NAME"];   NSDictionary *varDict;   varDict = [NSDictionary dictionaryWithObjectsAndKeys:         @"Herbie", @"NAME", nil];   predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];   NSLog(@"SNORGLE: %@", predicate);   match = [predicate evaluateWithObject: car];  NSLog (@"%s", (match) ? "YES" : "NO"); //注意不能使用$VARIABLE作為路徑名,因為它值代表值 //謂詞字符竄還支持c語言中一些常用的運算符   predicate = [NSPredicate predicateWithFormat:          @"(engine.horsepower > 50) AND (engine.horsepower < 200)"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"oop %@", results);   predicate = [NSPredicate predicateWithFormat: @"name < 'Newton'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", [results valueForKey: @"name"]); //強大的數組運算符   predicate = [NSPredicate predicateWithFormat:          @"engine.horsepower BETWEEN { 50, 200 }"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results);   NSArray *betweens = [NSArray arrayWithObjects:              [NSNumber numberWithInt: 50], [NSNumber numberWithInt: 200], nil];   predicate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN %@", betweens];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results);   predicateTemplate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN $POWERS"];   varDict = [NSDictionary dictionaryWithObjectsAndKeys: betweens, @"POWERS", nil];   predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results); //IN運算符   predicate = [NSPredicate predicateWithFormat: @"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", [results valueForKey: @"name"]);   predicate = [NSPredicate predicateWithFormat: @"SELF.name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", [results valueForKey: @"name"]);   names = [cars valueForKey: @"name"];   predicate = [NSPredicate predicateWithFormat: @"SELF IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];   results = [names filteredArrayUsingPredicate: predicate];//這里限制了SELF的范圍   NSLog (@"%@", results); //BEGINSWITH,ENDSWITH,CONTAINS //附加符號,[c],[d],[cd],c表示不區分大小寫,d表示不區分發音字符,cd表示什么都不區分   predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'Bad'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results);   predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'HERB'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results);   predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH[cd] 'HERB'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results); //LIKE運算符(通配符)   predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '*er*'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results);   predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '???er*'"];   results = [cars filteredArrayUsingPredicate: predicate];   NSLog (@"%@", results); //基本的查詢NSPredicate *predicate;predicate = [NSPredicate predicateWithFormat: @"name == 'Herbie'"];  BOOL match = [predicate evaluateWithObject: car];  NSLog (@"%s", (match) ? "YES" : "NO");//在整個cars里面循環比較  predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];  NSArray *cars = [garage cars];  for (Car *car in [garage cars]) {    if ([predicate evaluateWithObject: car]) {      NSLog (@"%@", car.name);    }  }//輸出完整的信息  predicate = [NSPredicate predicateWithFormat: @"engine.horsepower > 150"];  NSArray *results;  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);//含有變量的謂詞  NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"name == $NAME"];  NSDictionary *varDict;  varDict = [NSDictionary dictionaryWithObjectsAndKeys:        @"Herbie", @"NAME", nil];  predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];  NSLog(@"SNORGLE: %@", predicate);  match = [predicate evaluateWithObject: car]; NSLog (@"%s", (match) ? "YES" : "NO");//注意不能使用$VARIABLE作為路徑名,因為它值代表值//謂詞字符竄還支持c語言中一些常用的運算符  predicate = [NSPredicate predicateWithFormat:         @"(engine.horsepower > 50) AND (engine.horsepower < 200)"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"oop %@", results);  predicate = [NSPredicate predicateWithFormat: @"name < 'Newton'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", [results valueForKey: @"name"]);//強大的數組運算符  predicate = [NSPredicate predicateWithFormat:         @"engine.horsepower BETWEEN { 50, 200 }"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);  NSArray *betweens = [NSArray arrayWithObjects:             [NSNumber numberWithInt: 50], [NSNumber numberWithInt: 200], nil];  predicate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN %@", betweens];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);  predicateTemplate = [NSPredicate predicateWithFormat: @"engine.horsepower BETWEEN $POWERS"];  varDict = [NSDictionary dictionaryWithObjectsAndKeys: betweens, @"POWERS", nil];  predicate = [predicateTemplate predicateWithSubstitutionVariables: varDict];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);//IN運算符  predicate = [NSPredicate predicateWithFormat: @"name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", [results valueForKey: @"name"]);  predicate = [NSPredicate predicateWithFormat: @"SELF.name IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", [results valueForKey: @"name"]);  names = [cars valueForKey: @"name"];  predicate = [NSPredicate predicateWithFormat: @"SELF IN { 'Herbie', 'Snugs', 'Badger', 'Flap' }"];  results = [names filteredArrayUsingPredicate: predicate];//這里限制了SELF的范圍  NSLog (@"%@", results);//BEGINSWITH,ENDSWITH,CONTAINS//附加符號,[c],[d],[cd],c表示不區分大小寫,d表示不區分發音字符,cd表示什么都不區分  predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'Bad'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);  predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH 'HERB'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);  predicate = [NSPredicate predicateWithFormat: @"name BEGINSWITH[cd] 'HERB'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);//LIKE運算符(通配符)  predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '*er*'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);  predicate = [NSPredicate predicateWithFormat: @"name LIKE[cd] '???er*'"];  results = [cars filteredArrayUsingPredicate: predicate];  NSLog (@"%@", results);

以上就是小編給大家分享的iOS中使用正則表達式NSRegularExpression 來驗證textfiled輸入的內容,希望大家喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩大胆人体377p| 国产精品入口免费视| 日韩久久精品成人| 亚洲国产一区二区三区在线观看| 日韩精品极品毛片系列视频| 亚洲在线www| 国产精品久久久久久久一区探花| 国产最新精品视频| 亚洲人成网站999久久久综合| 国产视频一区在线| 欧美中文字幕在线观看| 51久久精品夜色国产麻豆| 亚洲综合社区网| 亚洲欧洲一区二区三区在线观看| 久久综合电影一区| 一区二区三区国产在线观看| 久热精品视频在线免费观看| 国产一区二区三区丝袜| 欧美亚洲国产视频小说| 亚洲视频在线观看免费| 欧美最猛性xxxxx(亚洲精品)| 精品视频久久久久久| 38少妇精品导航| 少妇激情综合网| 亚洲tv在线观看| 国产成人综合亚洲| 亚洲成人在线网| 欧洲中文字幕国产精品| 中文字幕精品影院| 亚洲欧美日韩视频一区| 欧美国产精品人人做人人爱| 一区二区三区精品99久久| 美女啪啪无遮挡免费久久网站| 日韩不卡在线观看| 亚洲人成亚洲人成在线观看| 亚洲xxxx3d| 欧美华人在线视频| 国内精品美女av在线播放| 亚洲欧美国产精品专区久久| 亚洲无亚洲人成网站77777| 色99之美女主播在线视频| 亚洲欧美日韩图片| 亚洲成人精品视频| 亚洲欧美成人在线| 伊是香蕉大人久久| 国产精品成人一区| 久久久久国色av免费观看性色| 久久综合伊人77777| 国产成人亚洲综合| 亚洲成人网在线观看| 黄色成人在线播放| 中文字幕av一区| 国产小视频国产精品| 日韩在线视频免费观看高清中文| 国产精品欧美久久久| 国产999精品| 欧美精品在线极品| 亚洲国产天堂久久综合网| 亚洲999一在线观看www| 日韩电影免费观看在线观看| 国产成人福利夜色影视| 国产成人久久精品| 亚洲天堂一区二区三区| 国产精品久久国产精品99gif| 日韩av免费在线观看| 在线观看欧美www| 日韩有码视频在线| 2019中文字幕在线免费观看| 亚洲国产中文字幕在线观看| 亚洲欧美日韩精品久久| 日本视频久久久| 亚洲人成五月天| 国产亚洲精品日韩| 欧美另类在线播放| 91老司机精品视频| 日韩高清a**址| 91麻豆桃色免费看| 色偷偷噜噜噜亚洲男人的天堂| 日韩av免费在线观看| 国产+成+人+亚洲欧洲| 97视频网站入口| 亚洲欧美日韩一区二区三区在线| 国产精品视频久久久久| 亚洲三级黄色在线观看| 国产日产欧美a一级在线| 亚洲视频在线观看免费| 正在播放亚洲1区| 中文字幕日韩欧美| 少妇精69xxtheporn| 日韩女优人人人人射在线视频| 美女av一区二区| 正在播放国产一区| 欧美另类暴力丝袜| 久久精品国产欧美亚洲人人爽| 96sao精品视频在线观看| 国产丝袜一区二区三区免费视频| 欧美一级电影免费在线观看| 亚洲欧美日韩综合| 91在线直播亚洲| 538国产精品一区二区在线| 国产视频亚洲精品| 精品久久香蕉国产线看观看gif| 国产精品h在线观看| 日韩在线视频线视频免费网站| 欧美国产欧美亚洲国产日韩mv天天看完整| 一二美女精品欧洲| 欧美日韩福利在线观看| 69久久夜色精品国产69| 亚洲人成伊人成综合网久久久| 日本亚洲精品在线观看| 国产欧亚日韩视频| 国产专区精品视频| 国产精品福利久久久| 久久精品视频一| 亚洲理论电影网| 亚洲区在线播放| 日韩国产高清视频在线| 91嫩草在线视频| 免费av在线一区| 高跟丝袜一区二区三区| 久久影视电视剧免费网站| 国产在线精品成人一区二区三区| 日韩在线观看网站| 亚洲精品按摩视频| 亚洲国产另类久久精品| 欧美在线观看日本一区| 亚洲人成绝费网站色www| 欧美激情国内偷拍| 7m第一福利500精品视频| 国产激情999| 色综合久久88色综合天天看泰| 97精品国产91久久久久久| 日本欧美精品在线| 欧美日韩亚洲91| 欧美电影《睫毛膏》| 精品一区二区三区三区| 97超级碰碰人国产在线观看| 91在线视频免费| 欧美一区二粉嫩精品国产一线天| 57pao国产成人免费| 久久亚洲一区二区三区四区五区高| 91天堂在线视频| 日产精品久久久一区二区福利| 4k岛国日韩精品**专区| 国产在线999| 777精品视频| 亚洲免费影视第一页| 在线成人一区二区| 亚洲精品视频免费在线观看| 欧美日韩成人免费| 日韩欧美一区二区在线| 国产日韩av在线播放| 国产精品流白浆视频| 久久久在线免费观看| 亚洲а∨天堂久久精品9966| 欧洲美女7788成人免费视频| 国产91精品黑色丝袜高跟鞋| 日韩麻豆第一页| 91免费视频国产| 亚洲激情电影中文字幕| 亚洲精品一区在线观看香蕉| 国产精品麻豆va在线播放| 欧美日韩一区二区免费视频| 久久久久久久久久国产|