iOS开发正则表达式,验证是否是邮箱,手机号,银行卡号,URL等等
2017-11-30 15:21
1361 查看
这里是用的类扩展,封装了验证是否是邮箱,手机号,工商税号,身份证号,链接,车牌号等等功能.
.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
.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
相关文章推荐
- Android 身份证、手机号、邮箱、银行卡号验证(正则表达式)
- iOS开发用正则表达式验证身份证,邮箱,手机号等
- iOS 开发 常用的正则验证表达式:电话 、邮箱等等
- JS正则表达式验证账号、手机号、电话和邮箱是否合法
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS开发笔记:实现对手机号、邮箱输入格式的判断(正则表达式)
- iOS验证邮箱, 手机号, 密码, 账户名 --- 正则表达式
- IOS中根据正则表达式来输入的文本框TextField,输入时自动格式化银行卡号(4位一空格)、手机号等
- iOS正则表达式,手机号、邮箱验证
- Swift 正则表达式 验证手机号、邮箱、URL等
- swift语言使用正则表达式验证字符串是否为邮箱,手机号,身份证号
- iOS 用正则表达式验证邮箱和手机号
- iOS开发-正则表达式验证手机号
- iOS中用正则表达式验证邮箱和手机号
- iOS开发,最新判断是否是手机号的正则表达式
- iOS开发--邮箱,电话号码,身份证正则表达式验证
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS - 正则表达式判断邮箱、身份证,车牌,URL等..是否正确:
- iOS 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐)