iOS开发常见正则表达式

在开发中遇到一些判断需要正则表达式,特意封装了个工具类供大家使用 

//
//  CheckTool.h
//  Hello_Tom
//
//  Created by  on 15/12/2.
//  Copyright © 2015年 . All rights reserved.
//

#import <Foundation/Foundation.h>

@interface CheckTool : NSObject
//判断邮箱是否合法
+ (BOOL) isValidateEmail:(NSString *)email;

//判断字符串是否为空
+ (BOOL) isBlankString:(id)string;

//判断是否是中文
+ (BOOL) isHanzi:(NSString *)str;

//判断是否是英文
+ (BOOL) isEnglish:(NSString *)str;

//判断是否是数字
+ (BOOL) isNumber:(NSString *)str;

//判断是否汉字与英文
+(BOOL)checkIsHanziAndIsEnglist:(NSString *)str;

//判断手机号是否合法
+ (BOOL) isValidateMobile:(NSString *)mobile;
@end

//
//  CheckTool.m
//  Hello_Tom
//
//  Created by  on 15/12/2.
//  Copyright © 2015年 . All rights reserved.
//

#import "CheckTool.h"

@implementation CheckTool
//判断邮箱是否合法
+ (BOOL) isValidateEmail:(NSString *)email {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailText = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];
    return [emailText evaluateWithObject:email];
}

//判断字符串是否为空
+ (BOOL) isBlankString:(id )string {
    
    if ([string isKindOfClass:[NSNull class]]) {
        return YES;
    }
    
    if (string == nil || string == NULL || [string length] == 0) {
        return YES;
    }
    
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {
        return YES;
    }
    if ([string isEqualToString:@"(null)"] || [string isEqualToString:@""]) {
        return YES;
    }
    if ([string isEqualToString:@"<null>"]){
        return YES;
    }
    return NO;
}

//判断是否是中文
+ (BOOL) isHanzi:(NSString *)str{
    NSString *strRegex = @"^[\u4e00-\u9fa5]+$";
    NSPredicate *strText = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",strRegex];
    NSString *mystring = str;
    if ([strText evaluateWithObject:mystring] == YES) {
        return YES;
    }
    else{
        return NO;
    }
    
}

//判断是否是英文
+ (BOOL) isEnglish:(NSString *)str {
    NSString *strRegex = @"[A-Za-z]+$";
    NSPredicate *strText = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",strRegex];
    NSString *mystring = str;
    if ([strText evaluateWithObject:mystring] == YES) {
        return YES;
    }
    else{
        return NO;
    }
}

//判断是否是数字
+ (BOOL) isNumber:(NSString *)str {
    NSString *strRegex = @"^[0-9]*$";
    NSPredicate *strText = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",strRegex];
    NSString *mystring = str;
    if ([strText evaluateWithObject:mystring] == YES) {
        return YES;
    }
    else{
        return NO;
    }
}

//判断是否汉字与英文
+(BOOL)checkIsHanziAndIsEnglist:(NSString *)str{
    if([CheckTool isHanzi:str] || [CheckTool isEnglish:str] || [str isEqualToString:@""]){
        return YES;
    }else
    {
        return NO;
    }
}

//判断手机号是否合法
+ (BOOL) isValidateMobile:(NSString *)mobile
{
    //手机号以13,15,18开头,八个 \d 数字字符  ^(13[0-9]|15[0-9]|18[0|6|8|9])\d{8}$
    NSString *phoneRegex = @"^((13[0-9])|(14[0-9])|(15[0-9])|(19[0-9])|(18[0-9])|(17[0-9]))\\d{8}$";
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];
    return [phoneTest evaluateWithObject:mobile];
}

@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值