中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS用正則表達式驗證textfield輸入的內容是否合法

發布時間:2020-06-23 09:24:20 來源:網絡 閱讀:298 作者:蓬萊仙羽 欄目:移動開發

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直接對自己進行匹配

 

[cpp]
//基本的查詢  
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);

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霸州市| 万源市| 饶河县| 扶绥县| 巩留县| 壤塘县| 孟州市| 延吉市| 稻城县| 兴山县| 呼和浩特市| 绥棱县| 聂拉木县| 始兴县| 朝阳区| 望谟县| 德清县| 四川省| 云和县| 芦山县| 麻栗坡县| 黑河市| 梁山县| 措勤县| 和田市| 长子县| 沽源县| 浑源县| 虎林市| 和平区| 教育| 舟曲县| 东方市| 柘城县| 瑞安市| 景东| 陇西县| 苍梧县| 景德镇市| 黔南| 普兰店市|