美文网首页
检测手机号(联通电信移动)网址邮箱车牌号应有尽有

检测手机号(联通电信移动)网址邮箱车牌号应有尽有

作者: 糖糖本尊 | 来源:发表于2017-03-23 17:53 被阅读43次
废话话不说了 ,正则表达式:

/*!

*  是否为电话号码【简单写法】

*

*  @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];

}

相关文章

网友评论

      本文标题:检测手机号(联通电信移动)网址邮箱车牌号应有尽有

      本文链接:https://www.haomeiwen.com/subject/teetottx.html