iOS 常用正則表達式判斷方法及常用方法

判斷手機所屬運營商


//判斷手機所屬運營商
+(NSString *)checkMobilePhoneNumberBelongsToOperators:(NSString *)phoneNumber{
    
    /**
     *  三大運營商最新號段 合作版
     移動號段:
     134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188
     ^1(3[4-9]|47|5[0-2]|5[7-9]|78|8[2-4]|8[78])\\d{8}
     
     聯通號段:
     130 131 132 145 155 156 171 175 176 185 186
     ^1(3[012]|45|5[56]|7[156]|8[56])\\d{8}
     
     電信號段:
     133 149 153 173 177 180 181 189
     ^1(33|49|53|7[37]|8[019])\\d{8}
     
     虛擬運營商:
     170
     ^170\\d{8}$
     */
    
    //這里查找手機號中有沒有+86這種前綴,如果有的話就給他截掉,讓他變為正常的手機串號
    NSRange range = [phoneNumber rangeOfString:@"+86" options:NSBackwardsSearch];
    if (range.location != NSNotFound) {
        
        NSRange rangeNew;
        rangeNew.location = range.length;
        rangeNew.length = phoneNumber.length - range.length;
        
        phoneNumber = [phoneNumber substringWithRange:rangeNew];
        
    }
    
    
    NSString *pattern1 = @"^1(3[4-9]|47|5[0-2]|5[7-9]|78|8[2-4]|8[78])\\d{8}";
    
    NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern1];
    
    if ([pred1 evaluateWithObject:phoneNumber]) {
        return @"中國移動";
    }
    
    NSString *pattern2 = @"^1(3[012]|45|5[56]|7[156]|8[56])\\d{8}";
    
    NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern2];
    
    if ([pred2 evaluateWithObject:phoneNumber]) {
        return @"中國聯通";
    }
    
    
    NSString *pattern3 = @"^1(33|49|53|7[37]|8[019])\\d{8}";
    
    NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern3];
    
    if ([pred3 evaluateWithObject:phoneNumber]) {
        return @"中國電信";
    }
    
    NSString *pattern4 = @"^170\\d{8}";
    
    NSPredicate *pred4 = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern4];
    
    if ([pred4 evaluateWithObject:phoneNumber]) {
        return @"虛擬運營商";
    }
    
    return @"未知運營商";
    
}

判斷手機號是否正確

//匹配手機號
+(BOOL)checkUserTelNumber:(NSString *)userTelNumber{
    
    NSString *pattern = @"^1+[34578]+\\d{9}";
    
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern];
    
    return [pred evaluateWithObject:userTelNumber];
}

判斷用戶身份證號碼15位或者18位

//匹配用戶身份證號碼15位或者18位
+(BOOL)checkUserIDCard:(NSString *)userIDCard{
    
    NSString *pattern = @"^([0-9]{15}$)|([0-9]{17}([0-9]|X)$)";
    //    NSString *pattern = @"^(\\d{15}$)|(\\d{17}+(\\d|X)$)";
    
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern];
    
    return [pred evaluateWithObject:userIDCard];
}

判斷用戶姓名,20位的中文或英文

//匹配用戶姓名,20位的中文或英文
+(BOOL)checkUserName:(NSString *)userName{
    
    NSString *pattern = @"^([a-zA-Z]{1,20})|([\u4E00-\u9fa5]|·){1,20}";
    
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF  MATCHES %@",pattern];
    
    return [pred evaluateWithObject:userName];
}

檢測郵箱是否正確

//檢測郵箱是否正確
+(BOOL)checkEmail:(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];
    
}

過濾字符串中間和兩邊的空格

//過濾字符串中間和兩邊的空格
+(NSString *)FilterSpaceString:(NSString *)string{
    
    NSString *newStr;
    
    //過濾掉字符串前后的空格
    newStr = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    
    //過濾掉中間的空格
    newStr = [newStr stringByReplacingOccurrencesOfString:@" " withString:@""];
    
    return newStr;
}

隱藏掉姓名的第一個字

//顯示最后一個字 剩下*
+ (NSString*)PersonNameSecret:(NSString*)name{
    for (int i = 0 ; i < name.length - 1;i ++) {
        //顯示最后一個字
//        name = [name stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:@"*"];
        //隱藏第一個字
        name = [name stringByReplacingCharactersInRange:NSMakeRange(0, 1) withString:@"*"];
    }
    return name;
}

去掉小數點后面多余的0

//浮點數處理并去掉多余的0
+(NSString *)stringDisposeWithFloat:(NSString *)floatValue
{
    NSString *str = [NSString stringWithFormat:@"%@",floatValue];
    
    long len = str.length;
    for (int i = 0; i < len; i++)
    {
        if (![str  hasSuffix:@"0"])
            break;
        else
            str = [str substringToIndex:[str length]-1];
    }
    if ([str hasSuffix:@"."])//避免像2.0000這樣的被解析成2.
    {
        return [str substringToIndex:[str length]-1];//s.substring(0, len - i - 1);
    }
    else
    {
        return str;
    }
}

截取MM名稱后的 “XXXX”

//截取MM名稱后的 “XXXX”
+(NSString *)subBankNameString:(NSString *)bankName{
    
    NSRange range = [bankName rangeOfString:@"MM" options:NSBackwardsSearch];
    if (range.location != NSNotFound) {
        //        NSLog(@"range = %d",range.location);
        
        NSRange rangeNew;
        rangeNew.location = 0;
        rangeNew.length = range.location + 2;
        
        bankName = [bankName substringWithRange:rangeNew];
        
    }
    
    return bankName;
}

16進制顏色(html顏色值)字符串轉為UIColor

//16進制顏色(html顏色值)字符串轉為UIColor
+ (UIColor *) hexStringToColor: (NSString *) stringToConvert
{
    NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString];
    // String should be 6 or 8 characters
    
    if ([cString length] < 6) return [UIColor blackColor];
    // strip 0X if it appears
    if ([cString hasPrefix:@"0X"]) cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"]) cString = [cString substringFromIndex:1];
    if ([cString length] != 6) return [UIColor blackColor];
    
    // Separate into r, g, b substrings
    
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    // Scan values
    unsigned int r, g, b;
    
    [[NSScanner scannerWithString:rString] scanHexInt:&r];
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    
    return [UIColor colorWithRed:((float) r / 255.0f)
                           green:((float) g / 255.0f)
                            blue:((float) b / 255.0f)
                           alpha:1.0f];
    
}

隱藏銀行卡號中間的數字

//隱藏銀行卡號中間的數字,前4后6 剩下*
+ (NSString*)bankCardNumSecret:(NSString*)cardNum{
    for (int i = 6 ; i < cardNum.length - 4;i ++) {
        cardNum = [cardNum stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:@"*"];
    }
    return cardNum;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容