iOS 正则表达式验证

//
//  ZFValidator.h
//  MyStudyDemo
//
//  Created by FranZhou on 16/7/18.
//  Copyright © 2016年 kimree. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface ZFValidator : NSObject

/**
 *  验证邮箱格式
 *
 *  @param email
 *
 *  @return
 */
+ (BOOL)isEmail:(NSString *)email;

/**
 *  验证手机号
 *
 *  @param phoneNum
 *
 *  @return
 */
+ (BOOL)isMobilePhoneNumber:(NSString *)phoneNum;

/**
 *  验证座机号码
 *
 *  @param telephoneNum
 *
 *  @return
 */
+ (BOOL)isTelephoneNumber:(NSString *)telephoneNum;

/**
 *  验证身份证号码
 *
 *  @param idNum
 *
 *  @return
 */
+ (BOOL)isIdentityNumber:(NSString *)idNum;

/**
 *  验证密码(数字字母组合,不能纯数字或纯字母)
 *
 *  @param password
 *
 *  @return
 */
+ (BOOL)isPassword:(NSString *)password;


/**
 *  字符串验证
 *
 *  @param str       要验证的字符串
 *  @param regexpStr 正则表达式
 *
 *  @return
 */
+(BOOL)validateString:(NSString *) str withRegexp:(NSString *)regexpStr;

@end

  

 

ZFValidator.m
//
//  ZFValidator.m
//  MyStudyDemo
//
//  Created by FranZhou on 16/7/18.
//  Copyright © 2016年 kimree. All rights reserved.
//

#import "ZFValidator.h"

@implementation ZFValidator

/**
 *  验证邮箱格式
 *
 *  @param email
 *
 *  @return
 */
+(BOOL)isEmail:(NSString *)email{
    // 去空格处理
    NSString *validatorStr = [email stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *regexpStr = @"\\w+(.\\w+)*@\\w+.\\w+";
    return [self validateString:validatorStr withRegexp:regexpStr];
}

/**
 *  验证手机号
 *
 *  @param phoneNum
 *
 *  @return
 */
+ (BOOL)isMobilePhoneNumber:(NSString *)phoneNum{
    NSString *validatorStr = [phoneNum stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *regexpStr = @"^(1[3|4|5|8|7])[\\d]{9}$";
    return [self validateString:validatorStr withRegexp:regexpStr];
}


/**
 *  验证座机号码
 *
 *  @param telephoneNum
 *
 *  @return
 */
+ (BOOL)isTelephoneNumber:(NSString *)telephoneNum{
    NSString *validatorStr = [telephoneNum stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *regexpStr = @"^(0\\d{2,3}-?)?\\d{7,8}$";
    return [self validateString:validatorStr withRegexp:regexpStr];
}

/**
 *  验证密码
 *
 *  @param password
 *
 *  @return
 */
+ (BOOL)isPassword:(NSString *)password{
    NSString *validatorStr = [password stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *regexpStr = @"([A-Za-z]+\\d+\\w*)|(\\d+[A-Za-z]+\\w*)";
    return [self validateString:validatorStr withRegexp:regexpStr];
}

/**
 *  验证身份证号码
 *
 *  @param idNum
 *
 *  @return
 */
+ (BOOL)isIdentityNumber:(NSString *)idNum{
    NSString *validatorStr = [idNum stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSString *regexpStr = @"^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$";
    return [self validateString:validatorStr withRegexp:regexpStr];
}

/**
 *  字符串验证
 *
 *  @param str       要验证的字符串
 *  @param regexpStr 正则表达式
 *
 *  @return
 */
+(BOOL)validateString:(NSString *) str withRegexp:(NSString *)regexpStr{
    BOOL isMatch = NO;
    
    NSError *error = nil;
    NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:regexpStr options:NSRegularExpressionAnchorsMatchLines error:&error];
    if (error == nil) {
        NSArray<NSTextCheckingResult *> *matches = [regex matchesInString:str options:NSMatchingAnchored range:NSMakeRange(0, str.length)];
        for (NSTextCheckingResult *match in matches) {
            NSRange range = match.range;
            
            // 全匹配才算满足验证
            if (range.location == 0 && range.length == str.length) {
                isMatch = YES;
                break;
            }
        }
    }
    
    return isMatch;
}

@end

  

转载于:https://www.cnblogs.com/FranZhou/p/5622638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值