700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 常用的正则表达式判断手机号邮箱等

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

时间:2024-07-04 00:06:43

相关推荐

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

//

// NSString+ToolString.h

// Tools

//

// Created by webapps on /6/6.

// Copyright © wsq. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface NSString (ToolString)

/**

判断该字符串是不是一个有效的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;

/**

根据image的data判断图片类型

@param data 图片data

@return 图片类型(png、jpg...)

*/

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

@end

//

// NSString+ToolString.m

// Tools

//

// Created by webapps on /6/6.

// Copyright © 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

更多工具:/download/qq_33646395/9944883

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。