IOS用正则表达式验证textfield输入的内容是否合法-创新互联

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);

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章题目:IOS用正则表达式验证textfield输入的内容是否合法-创新互联
链接URL:https://www.cdcxhl.com/article22/dsdcjc.html

成都网站建设公司_创新互联,为您提供营销型网站建设品牌网站建设定制网站网站设计网页设计公司做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设