废话话不说了 ,正则表达式:
/*!
* 是否为电话号码【简单写法】
*
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+(BOOL)ba_isPhoneNumber:(NSString *)phoneNum
{
NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|70)\\d{8}$";
NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
return [regextestmobile evaluateWithObject:phoneNum];
}
/*!
* 是否为电话号码【复杂写法】
*
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isMobileNumber:(NSString *)mobileNum
{
if (mobileNum.length != 11)
{
return NO;
}
/**
* 手机号码:
* 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]|70)\\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}$)";
NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
if (([regextestmobile evaluateWithObject:mobileNum] == YES)
|| ([regextestcm evaluateWithObject:mobileNum] == YES)
|| ([regextestct evaluateWithObject:mobileNum] == YES)
|| ([regextestcu evaluateWithObject:mobileNum] == YES))
{
return YES;
}
else
{
return NO;
}
}
/*!
* 判断是否是:移动手机号
*
* @param phoneNum 手机号码
*
* @return 移动手机号
*/
+ (BOOL)ba_isChinaMobile:(NSString *)phoneNum
{
/*!
* 中国移动: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}$)";
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
return [regextestcm evaluateWithObject:phoneNum];
}
/*!
* 判断是否是:联通手机号
*
* @param phoneNum 手机号码
*
* @return 联通手机号
*/
+ (BOOL)ba_isChinaUnicom:(NSString *)phoneNum
{
/*!
* 中国联通: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}$)";
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
return [regextestcm evaluateWithObject:phoneNum];
}
/*!
* 判断是否是:电信手机号
*
* @param phoneNum 手机号码
*
* @return 电信手机号
*/
+ (BOOL)ba_isChinaTelecom:(NSString *)phoneNum
{
/*!
* 中国电信:China Telecom
* 133,153,180,181,189,177,1700
*/
NSString *CT = @"^1((33|53|8[019])[0-9]|349)\\d{7}$";
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];
return [regextestcm evaluateWithObject:phoneNum];
}
/*!
* 判断具体是哪个运营商的手机号
*
* @param phoneNum 传入需要检测的字符串
*
* @return 返回:中国移动、中国联通、中国电信、未知
*/
+ (NSString *)ba_getPhoneNumType:(NSString *)phoneNum
{
return [BARegularExpression ba_isChinaMobile:phoneNum]? @"中国移动": ([BARegularExpression ba_isChinaUnicom:phoneNum]? @"中国联通":([BARegularExpression ba_isChinaTelecom:phoneNum]? @"中国电信": @"未知号码"));
}
/*!
* 检测是否为邮箱
*
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isEmailQualified:(NSString *)emailStr
{
NSString *pattern = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:emailStr options:0 range:NSMakeRange(0, emailStr.length)];
return results.count > 0;
}
/*!
* 检测用户输入密码是否以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
*
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isPasswordQualified:(NSString *)passwordStr
{
// NSString *pattern = @"^[a-zA-Z]\\w.{5,17}$";
// NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
// NSArray *results = [regex matchesInString:passwordStr options:0 range:NSMakeRange(0, passwordStr.length)];
// return results.count > 0;
NSString *passWordRegex = @"^[a-zA-Z]\\w.{5,17}$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];
return [passWordPredicate evaluateWithObject:passwordStr];
}
/*!
* 验证身份证号(15位或18位数字)
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isIdCardNumberQualified:(NSString *)idCardNumberStr
{
NSString *pattern = @"^\\d{15}|\\d{18}$";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:idCardNumberStr options:0 range:NSMakeRange(0, idCardNumberStr.length)];
return results.count > 0;
}
/*!
* 验证IP地址(15位或18位数字)
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isIPAddress:(NSString *)iPAddressStr
{
NSString *pattern = @"((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:iPAddressStr options:0 range:NSMakeRange(0, iPAddressStr.length)];
return results.count > 0;
}
/*!
* 验证输入的是否全为数字
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isAllNumber:(NSString *)allNumberStr
{
NSString *pattern = @"^[0-9]*$";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:allNumberStr options:0 range:NSMakeRange(0, allNumberStr.length)];
return results.count > 0;
}
/*!
* 验证由26个英文字母组成的字符串
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isEnglishAlphabet:(NSString *)englishAlphabetStr
{
NSString *pattern = @"^[A-Za-z]+$";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:englishAlphabetStr options:0 range:NSMakeRange(0, englishAlphabetStr.length)];
return results.count > 0;
}
/*!
* 验证输入的是否是URL地址
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isUrl:(NSString *)urlStr
{
// NSString* verifyRules=@"^http://([\\w-]+\.)+[\\w-]+(/[\\w-./?%&=]*)?$";
// NSPredicate *verifyRulesPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",verifyRules];
// return [verifyRulesPre evaluateWithObject:urlStr];
NSString *pattern = @"\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|/)))";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:urlStr options:0 range:NSMakeRange(0, urlStr.length)];
return results.count > 0;
}
/*!
* 验证输入的是否是中文
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isChinese:(NSString *)chineseStr
{
NSString *pattern = @"[\u4e00-\u9fa5]+";
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:chineseStr options:0 range:NSMakeRange(0, chineseStr.length)];
return results.count > 0;
}
/*!
* 验证输入的是否是高亮显示
* @param pattern 传入需要检测的字符串
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isNormalText:(NSString *)normalStr WithHighLightText:(NSString *)HighLightStr
{
NSString *pattern = [NSString stringWithFormat:@"%@",HighLightStr];
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSArray *results = [regex matchesInString:normalStr options:0 range:NSMakeRange(0, normalStr.length)];
for (NSTextCheckingResult *resltText in results) {
NSLog(@"----------------%zd",resltText.range.length);
}
return results.count > 0;
}
/*!
* 是否为常用用户名(根据自己需求改)
*
* @param userNameStr userNameStr
*
* @return 返回检测结果 是或者不是(6-20位数字+字母组合)
*/
+ (BOOL)ba_isUserNameInGeneral:(NSString *)userNameStr
{
NSString* verifyRules = @"^[A-Za-z0-9]{6,20}+$";
NSPredicate *verifyRulesPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",verifyRules];
return [verifyRulesPre evaluateWithObject:userNameStr];
}
/*!
* 车牌号验证
*
* @param carNumber carNumber
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isValidateCarNumber:(NSString *)carNumber
{
NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$";
NSPredicate *catTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", carRegex];
return [catTest evaluateWithObject:carNumber];
}
/*!
* 车型验证
*
* @param CarType CarType
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isValidateCarType:(NSString *)CarType
{
NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$";
NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex];
return [carTest evaluateWithObject:CarType];
}
/*!
* 昵称验证
*
* @param nickname nickname
*
* @return 返回检测结果 是或者不是
*/
+ (BOOL)ba_isValidateNickname:(NSString *)nickname
{
NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";
NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];
return [passWordPredicate evaluateWithObject:nickname];
}
网友评论