• 正则判断


    .h文件

     1 #import <Foundation/Foundation.h>  
     2   
     3 @interface Utils : NSObject  
     4 #pragma 正则匹配手机号  
     5 + (BOOL)checkTelNumber:(NSString *) telNumber;  
     6 #pragma 正则匹配用户密码6-18位数字和字母组合  
     7 + (BOOL)checkPassword:(NSString *) password;  
     8 #pragma 正则匹配用户姓名,20位的中文或英文  
     9 + (BOOL)checkUserName : (NSString *) userName;  
    10 #pragma 正则匹配用户身份证号  
    11 + (BOOL)checkUserIdCard: (NSString *) idCard;  
    12 #pragma 正则匹员工号,12位的数字  
    13 + (BOOL)checkEmployeeNumber : (NSString *) number;  
    14 #pragma 正则匹配URL  
    15 + (BOOL)checkURL : (NSString *) url;  
    16 @end  

    .m文件

      #import "Utils.h"  
       
     @implementation Utils  
     #pragma 正则匹配手机号  
     + (BOOL)checkTelNumber:(NSString *) telNumber  
     {  
    
    mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""];
    
        if (mobile.length != 11)
    
        {
    
            return NO;
    
        }else{
    
            /**
    
             * 移动号段正则表达式
    
             */
    
            NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\d{8}|(1705)\d{7}$";
    
            /**
    
             * 联通号段正则表达式
    
             */
    
            NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\d{8}|(1709)\d{7}$";
    
            /**
    
             * 电信号段正则表达式
    
             */
    
            NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\d{8}$";
    
            NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
    
            BOOL isMatch1 = [pred1 evaluateWithObject:mobile];
    
            NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
    
            BOOL isMatch2 = [pred2 evaluateWithObject:mobile];
    
            NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
    
            BOOL isMatch3 = [pred3 evaluateWithObject:mobile];
    
            
    
            if (isMatch1 || isMatch2 || isMatch3) {
    
                return YES;
    
            }else{
    
                return NO;
    
            }
    
        }
    
     
    
     }  
       
     
     #pragma 正则匹配用户密码6-18位数字和字母组合  
    + (BOOL)checkPassword:(NSString *) password  
     {  
         NSString *pattern = @"^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}";  
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];  
         BOOL isMatch = [pred evaluateWithObject:password];  
         return isMatch;  
           
     }  
      
     #pragma 正则匹配用户姓名,20位的中文或英文  
     + (BOOL)checkUserName : (NSString *) userName  
    {  
         NSString *pattern = @"^[a-zA-Zu4E00-u9FA5]{1,20}";  
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];  
         BOOL isMatch = [pred evaluateWithObject:userName];  
        return isMatch;  
           
     }  
       
       
     #pragma 正则匹配用户身份证号15或18位  
     + (BOOL)checkUserIdCard: (NSString *) idCard  
     {  
         NSString *pattern = @"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";  
         NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];  
         BOOL isMatch = [pred evaluateWithObject:idCard];  
         return isMatch;  
     }  
      
     #pragma 正则匹员工号,12位的数字  
     + (BOOL)checkEmployeeNumber : (NSString *) number  
     {  
         NSString *pattern = @"^[0-9]{12}";  
           
         NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];  
         BOOL isMatch = [pred evaluateWithObject:number];  
         return isMatch;  
          
     }  
      
     #pragma 正则匹配URL  
     + (BOOL)checkURL : (NSString *) url  
     {  
         NSString *pattern = @"^[0-9A-Za-z]{1,50}";  
         NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];  
         BOOL isMatch = [pred evaluateWithObject:url];  
         return isMatch;  
           
     }  
       
     @end  
    

    判断用户密码是否规范

    #pragma 正则匹配密码 
    +(BOOL)judgePassWordLegal:(NSString *)pass;
    
    
    /**
    *  判断用户输入的密码是否符合规范,符合规范的密码要求:
    1. 长度6 ~ 10
    2. 密码中必须同时包含数字和字母
     
     ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$
     分开来注释一下:
     ^ 匹配一行的开头位置
     (?![0-9]+$) 预测该位置后面不全是数字
     (?![a-zA-Z]+$) 预测该位置后面不全是字母
     [0-9A-Za-z] {6,10} 由6-10位数字或这字母组成
     $ 匹配行结尾位置
     注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。
     
    */
    +(BOOL)judgePassWordLegal:(NSString *)pass {
        BOOL result = false;
        if ([pass length] >= 6 && [pass length] <= 10){
            // 判断长度大于8位后再接着判断是否同时包含数字和字符
            NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,10}$";
            NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
            result = [pred evaluateWithObject:pass];
        }
        return result;
    }
    
  • 相关阅读:
    【女农场主手记】漂亮地晕和扯淡地安全
    2008最新个人所得税计算公式
    oracle 字符集乱码解决 详细解释了oracle字符集的问题
    单反相机的传奇—佳能单反50年辉煌之路(连载三)
    单反相机的传奇—佳能单反50年辉煌之路(连载七)
    2009年5月重上涠洲岛,大吃海鲜
    单反相机的传奇—佳能单反50年辉煌之路(连载六)
    单反相机的传奇—佳能单反50年辉煌之路(连载八)
    单反相机的传奇—佳能单反50年辉煌之路(连载二)
    单反相机的传奇—佳能单反50年辉煌之路(连载十)
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5765805.html
Copyright © 2020-2023  润新知