200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > iOS开发正则表达式 验证是否是邮箱 手机号 银行卡号 URL等等

iOS开发正则表达式 验证是否是邮箱 手机号 银行卡号 URL等等

时间:2018-07-26 22:17:39

相关推荐

iOS开发正则表达式 验证是否是邮箱 手机号 银行卡号 URL等等

这里是用的类扩展,封装了验证是否是邮箱,手机号,工商税号,身份证号,链接,车牌号等等功能.

.h文件

#import <Foundation/Foundation.h>

@interface NSString (Validate)

/**

* 是否为空

*

* @return

*/

- (BOOL)isEmpty;

/**

* 长度位于min到max之间

*

* @param min

* @param max

*

* @return

*/

- (BOOL)betweenWith:(int)min and:(int)max;

/**

* 必须大于

*

* @param length

*

* @return

*/

- (BOOL)hasGreaterThanLength:(int)length;

/**

* 等于长度

*

* @param length

*

* @return

*/

- (BOOL)equalLength:(int)length;

/**

* 是否大于长度

*

* @param number

*

* @return

*/

- (BOOL)isGreaterThanNumber:(double)number;

/**

* 是否小于长度

*

* @param number

*

* @return

*/

- (BOOL)isLessThanNumber:(double)number;

/**

* 验证车牌号

*

* @return

*/

- (BOOL)isEqualToCardNumber;

/**

* 验证邮政编码

*

* @return

*/

- (BOOL)isEqualToPostalCode;

/**

* 验证IP

*

* @return

*/

- (BOOL)isEqualToIP;

/**

* 验证工商税号

*

* @return

*/

- (BOOL)isEqualToTaxNumber;

/**

* 是否是数字(不区分正负数)

*

* @return

*/

- (BOOL)isEqualToNumber;

/**

* 是否是小数(不区分正负数)

*

* @return

*/

- (BOOL)isEqualToDecimal;

/**

* 是否是11位手机号

*

* @return

*/

- (BOOL)isEqualToPhone;

/**

* 是否是国内电话号码,匹配形式如xxxx-xxxxxxx(xxxxxxxx)或xxx-xxxxxxxx

*

* @return

*/

- (BOOL)isEqualToTelPhone;

/**

* 是否是邮箱地址

*

* @return

*/

- (BOOL)isEqualToEmail;

/**

* 是否是URl

*

* @return

*/

- (BOOL)isEqualToURL;

/**

* 是否是中文名称

*

* @return

*/

- (BOOL)isEqualToCNName;

/**

* 是否是15位或18位身份证号码

*

* @return

*/

- (BOOL)isEqualToIdentity;

/**

* 匹配正则

*

* @param regex 正则表达式

*

* @return

*/

- (BOOL)isEqualToRegex:(NSString *)regex;

@end

.m文件

#import "NSString+Validate.h"

@implementation NSString (Validate)

- (BOOL)isEmpty

{

if (self.length < 1) {

return NO;

}

return ([self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length < 1);

}

- (BOOL)betweenWith:(int)min and:(int)max

{

if ([self isEmpty]) {

return NO;

}

return (self.length >= min && self.length < max);

}

- (BOOL)hasGreaterThanLength:(int)length

{

if ([self isEmpty]) {

return NO;

}

return self.length > length;

}

- (BOOL)equalLength:(int)length

{

if ([self isEmpty]) {

return NO;

}

return self.length == length;

}

- (BOOL)isGreaterThanNumber:(double)number

{

return [self doubleValue] > number;

}

- (BOOL)isLessThanNumber:(double)number

{

return [self doubleValue] < number;

}

- (BOOL)isEqualToCardNumber

{

return [self validateString:@"^[A-Za-z]{1}[A-Za-z_0-9]{5}$"];

}

- (BOOL)isEqualToPostalCode

{

return [self validateString:@"^[0-8]\\d{5}(?!\\d)$"];

}

- (BOOL)isEqualToIP

{

BOOL rc = [self validateString:@"^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$"];

if (rc) {

NSArray *componds = [self componentsSeparatedByString:@","];

BOOL v = YES;

for (NSString *s in componds) {

if (s.integerValue > 255) {

v = NO;

break;

}

}

return v;

}

return NO;

}

- (BOOL)isEqualToTaxNumber

{

return [self validateString:@"[0-9]\\d{13}([0-9]|X)$"];

}

- (BOOL)isEqualToNumber

{

return [self validateString:@"\\d+"];

}

- (BOOL)isEqualToDecimal

{

return [self validateString:@"\\d+(\\.\\d+)?"];

}

- (BOOL)isEqualToPhone

{

return [self validateString:@"1[3|4|5|7|8][0-9]{9}"];

}

- (BOOL)isEqualToTelPhone

{

return [self validateString:@"\\d{3}(-)?\\d{8}|\\d{4}(-)?\\d{7,8}"];

}

- (BOOL)isEqualToEmail

{

return [self validateString:@"\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"];

}

- (BOOL)isEqualToURL

{

return [self validateString:@"[http|https]+://[0-9a-zA-Z]+[0-9a-zA-Z.-]*.[a-zA-Z]{2,4}/?[^\\s]*"];

}

- (BOOL)isEqualToCNName

{

return [self validateString:@"[\\u4E00-\\u9FA5]{2,5}(?:·[\\u4E00-\\u9FA5]{2,5})*"];

}

- (BOOL)isEqualToIdentity

{

return [self validateString:@"\\d{15}|\\d{18}|\\d{17}[x|X]"];

}

- (BOOL)isEqualToRegex:(NSString *)regex

{

return [self validateString:regex];

}

- (BOOL)validateString:(NSString *)regex

{

if ([self isEmpty]) {

return NO;

}

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

BOOL result = [predicate evaluateWithObject:self];

return result;

}

@end

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