zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    JS定时器做物体运动
    JS做动态表格
    JS如何做2048(详细)
    改变 C/C++ 控制台程序的输出颜色和样式
    The Game Of Life – 数据结构与算法的敲门砖
    适用于 macOS 下 2K 显示器开启 HiDPI 的简便解决方案
    「踩坑记」Android API 判断权限申请结果的闪退问题
    Hello World!
    js 放大镜效果
    js 随机验证码生成及校验
  • 原文地址:https://www.cnblogs.com/FranZhou/p/5622638.html
Copyright © 2011-2022 走看看