iOS正则表达式

来源:互联网 发布:战舰世界新奥尔良数据 编辑:程序博客网 时间:2024/05/08 05:50
原文地址:iOS正则表达式作者:666799

NSRegularExpression是iOS系统在4.0后自带的匹配正则表达式,一般会和NSTextCheckingResult配套使用。 

代码:

//匹配输入的联系方式是否为QQ号码或者电子邮箱

    NSString*patternQQ = @"^[1-9](\d){4,9}$";
    NSString*patternEmail =@"\b([a-zA-Z0-9%_.+\-]+)@([a-zA-Z0-9.\-]+?\.[a-zA-Z]{2,6})\b";
    NSError*error = NULL;
   //定义正则表达式
   NSRegularExpression *regexQQ = [NSRegularExpressionregularExpressionWithPattern:patternQQ options:0error:&error];
   NSRegularExpression *regexEmail = [NSRegularExpressionregularExpressionWithPattern:patternEmail options:0error:&error];
   //使用正则表达式匹配字符
   NSTextCheckingResult *isMatchQQ = [regexQQfirstMatchInString:textField.text 
                                                         options:0
                                                           range:NSMakeRange(0, [textField.text length])];
   NSTextCheckingResult *isMatchEmail = [regexEmailfirstMatchInString:textField.text
                                                               options:0 
                                                                 range:NSMakeRange(0, [textField.text length])];
    
    if(isMatchQQ || isMatchEmail) {
       //doing thing
    }


代码放在这里,有需要直接拿去。自己也做备份,以后使用方便。Java代码
//校验用户名  
+ (BOOL) validateUserName : (NSString *) str 
{  
    NSString*patternStr = [NSStringstringWithFormat:@"^.{0,4}$|.{21,}|^[^A-Za-z0-9u4E00-u9FA5]|[^wu4E00-u9FA5.-]|([_.-])1"]; 
    NSRegularExpression*regularexpression = [[NSRegularExpressionalloc]   
                                              initWithPattern:patternStr 
                                              options:NSRegularExpressionCaseInsensitive   
                                              error:nil]; 
    NSUIntegernumberofMatch = [regularexpressionnumberOfMatchesInString:str   
                                                                  options:NSMatchingReportProgress 
                                                                    range:NSMakeRange(0,str.length)];  
      
    [regularexpressionrelease];  
      
    if(numberofMatch> 0)  
    
        returnYES;  
    
    returnNO;  
}  
 
//校验用户密码  
+ (BOOL) validateUserPasswd : (NSString *) str 
{  
      
    NSRegularExpression*regularexpression = [[NSRegularExpressionalloc]   
                                              initWithPattern:@"^[a-zA-Z0-9]{6,16}$"
                                              options:NSRegularExpressionCaseInsensitive   
                                              error:nil]; 
    NSUIntegernumberofMatch = [regularexpressionnumberOfMatchesInString:str   
                                                                  options:NSMatchingReportProgress 
                                                                    range:NSMakeRange(0,str.length)];  
      
    [regularexpressionrelease];  
      
    if(numberofMatch> 0)  
    
        NSLog(@"%@isNumbericString: YES", str);  
        returnYES;  
    
      
    NSLog(@"%@isNumbericString: NO", str);  
    returnNO;  
}  
 
//校验用户生日  
+ (BOOL) validateUserBornDate : (NSString *) str 
{  
      
    NSString*patternStr =@"^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"; 
    NSRegularExpression*regularexpression = [[NSRegularExpressionalloc]   
                                              initWithPattern:patternStr 
                                              options:NSRegularExpressionCaseInsensitive   
                                              error:nil]; 
    NSUIntegernumberofMatch = [regularexpressionnumberOfMatchesInString:str   
                                                                  options:NSMatchingReportProgress 
                                                                    range:NSMakeRange(0,str.length)];  
      
    [regularexpressionrelease];  
      
    if(numberofMatch> 0)  
    
        NSLog(@"%@isNumbericString: YES", str);  
        returnYES;  
    
      
    NSLog(@"%@isNumbericString: NO", str);  
    returnNO;  
}  
 
//校验用户手机号码  
+ (BOOL) validateUserPhone : (NSString *) str 
{  
    NSRegularExpression*regularexpression = [[NSRegularExpressionalloc]   
                                              initWithPattern:@"((d{11})|^((d{7,8})|(d{4}|d{3})-(d{7,8})|(d{4}|d{3})-(d{7,8})-(d{4}|d{3}|d{2}|d{1})|(d{7,8})-(d{4}|d{3}|d{2}|d{1}))$)"
                                              options:NSRegularExpressionCaseInsensitive   
                                              error:nil]; 
    NSUIntegernumberofMatch = [regularexpressionnumberOfMatchesInString:str   
                                                                  options:NSMatchingReportProgress 
                                                                    range:NSMakeRange(0,str.length)];  
      
    [regularexpressionrelease];  
      
    if(numberofMatch> 0)  
    
        NSLog(@"%@isNumbericString: YES", str);  
        returnYES;  
    
      
    NSLog(@"%@isNumbericString: NO", str);  
    returnNO;  
}  
 
//校验用户邮箱  
+ (BOOL) validateUserEmail : (NSString *) str 
{  
    NSRegularExpression*regularexpression = [[NSRegularExpressionalloc]   
                                              initWithPattern:@"w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*"
                                              options:NSRegularExpressionCaseInsensitive   
                                              error:nil]; 
    NSUIntegernumberofMatch = [regularexpressionnumberOfMatchesInString:str   
                                                                  options:NSMatchingReportProgress 
                                                                    range:NSMakeRange(0,str.length)];  
      
    [regularexpressionrelease];  
      
    if(numberofMatch> 0)  
    
        NSLog(@"%@isNumbericString: YES", str);  
        returnYES;  
    
      
    NSLog(@"%@isNumbericString: NO", str);  
    returnNO;  
}





0 0