常用的正则表达式判断手机号邮箱等

版权声明:本文为博主原创文章,转载请注明,谢谢! https://blog.csdn.net/qq_33646395/article/details/72875832

//

//  NSString+ToolString.h

//  Tools

//

//  Created by webapps on 2017/6/6.

//  Copyright © 2017 wsq. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface NSString (ToolString)

扫描二维码关注公众号,回复: 4250809 查看本文章



/**

 判断该字符串是不是一个有效的URL

 

 @return YES:是一个有效的URL or NO

 */

- (BOOL)isValidUrl;



/**

 判断该字符串是不是一个有效的邮箱

 

 @return YES:是一个有效的Email or NO

 */

- (BOOL)isValidEmail;



/**

 判断该字符串是不是一个有效的邮手机号(中国大陆)

 

 @return YES:是一个有效的phoneNum or NO

 */

- (BOOL)isValidPhoneNum;




/**

 判断该字符串是不是一个有效的省份证号(中国大陆)

 

 @return YES:是一个有效的isValidIdentityCard or NO

 */

- (BOOL)isValidIdentityCard;




/**

 根据imagedata判断图片类型

 

 @param data 图片data

 @return 图片类型(pngjpg...)

 */

+ (NSString *)contentTypeWithImageData: (NSData *)data;



@end




//

//  NSString+ToolString.m

//  Tools

//

//  Created by webapps on 2017/6/6.

//  Copyright © 2017 wsq. All rights reserved.

//


#import "NSString+ToolString.h"


@implementation NSString (ToolString)


- (BOOL)isValidUrl {

    NSString *regex =@"[a-zA-z]+://[^\\s]*";

    NSPredicate *urlTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",regex];

    return [urlTestevaluateWithObject:self];

}



- (BOOL)isValidEmail{

    

    NSString *emailRegex =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

    NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];

    return [emailTestevaluateWithObject:self];

}



- (BOOL)isValidPhoneNum{

    

    if (self.length !=11)

    {

        returnNO;

    }

    /**

     * 手机号码:

     * 13[0-9], 14[5,7], 15[0, 1, 2, 3, 5, 6, 7, 8, 9], 17[6, 7, 8], 18[0-9], 170[0-9]

     * 移动号段: 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705

     * 联通号段: 130,131,132,155,156,185,186,145,176,1709

     * 电信号段: 133,153,180,181,189,177,1700

     */

    NSString *MOBILE =@"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[0678])\\d{8}$";

    /**

     * 中国移动:China Mobile

     * 134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705

     */

    NSString *CM =@"(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)";

    /**

     * 中国联通:China Unicom

     * 130,131,132,155,156,185,186,145,176,1709

     */

    NSString *CU =@"(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)";

    /**

     * 中国电信:China Telecom

     * 133,153,180,181,189,177,1700

     */

    NSString *CT =@"(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)";

    /**

     25     * 大陆地区固话及小灵通

     26     * 区号:010,020,021,022,023,024,025,027,028,029

     27     * 号码:七位或八位

     28     */

    //  NSString * PHS = @"^(0[0-9]{2})\\d{8}$|^(0[0-9]{3}(\\d{7,8}))$";

    NSPredicate *regextestmobile = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", MOBILE];

    NSPredicate *regextestcm = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CM];

    NSPredicate *regextestcu = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CU];

    NSPredicate *regextestct = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", CT];

    if (([regextestmobileevaluateWithObject:self] ==YES)

        || ([regextestcm evaluateWithObject:self] ==YES)

        || ([regextestct evaluateWithObject:self] ==YES)

        || ([regextestcu evaluateWithObject:self] ==YES))

    {

        returnYES;

    }

    else

    {

        returnNO;

    }}




- (BOOL)isValidIdentityCard{

    BOOL flag;

    

    if (self.length <=0) {

        flag = NO;

        

        return flag;

    }

    

    

    NSString *regex2 =@"^(\\d{14}|\\d{17})(\\d|[xX])$";

    

    

    NSPredicate *identityCardPredicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",regex2];

    

    

    return [identityCardPredicateevaluateWithObject:self];


}




+ (NSString *)contentTypeWithImageData: (NSData *)data {

    

    uint8_t c;

    

    [data getBytes:&clength:1];

    

    switch (c) {

            

        case0xFF:

            

            return@"jpeg";

            

        case0x89:

            

            return@"png";

            

        case0x47:

            

            return@"gif";

            

        case0x49:

            

        case0x4D:

            

            return@"tiff";

            

        case0x52:

            

            if ([datalength] < 12) {

                

                returnnil;

                

            }

            

            NSString *testString = [[NSStringalloc] initWithData:[datasubdataWithRange:NSMakeRange(0,12)] encoding:NSASCIIStringEncoding];

            

            if ([testStringhasPrefix:@"RIFF"] && [testStringhasSuffix:@"WEBP"]) {

                

                return@"webp";

                

            }

            

            returnnil;

            

    }

    

    returnnil;

}


@end


更多工具:http://download.csdn.net/download/qq_33646395/9944883



猜你喜欢

转载自blog.csdn.net/qq_33646395/article/details/72875832