NSPredicate(谓语),验证邮箱、电话等用法(1)
来源:互联网 发布:ubuntu怎么连接服务器 编辑:程序博客网 时间:2024/05/16 13:05
//// NSObject+checkTool.h// Created by on 16/6/15.// Copyright © 2016年 . All rights reserved.//#import <Foundation/Foundation.h>@interface NSObject (checkTool)/** * 邮箱验证 * * @param email 邮箱 * * @return YES:正确 NO:失败 */+ (BOOL) checkForEmail:(NSString *)email;/** * 手机号验证 * * @param mobilePhone 手机号 * * @return YES:正确 NO:失败 */+(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone;/** * 电话号验证 * * @param phone 电话号 * * @return 结果 */+(BOOL)checkForPhoneNo:(NSString *)phone;/** * 身份证号验证(15位 或 18位) * * @param idCard 身份证号 * * @return YES:正确 NO:失败 */+(BOOL)checkForIdCard:(NSString *)idCard;/** * 密码验证 * * @param shortest 最短长度 * @param longest 最长长度 * @param pwd 密码 * * @return 结果 */+(BOOL)checkForPasswordWithShortest:(NSInteger)shortest longest:(NSInteger)longest password:(NSString *)pwd;/** * 由数字和26个英文字母组成的字符串 * * @param data 数据 * * @return 结果 */+ (BOOL) checkForNumberAndCase:(NSString *)data;/** * 校验只能输入26位小写字母 * * @param 数据 * * @return 结果 */+ (BOOL) checkForLowerCase:(NSString *)data;/** * 校验只能输入26位大写字母 * * @param data 数据 * * @return 结果 */+ (BOOL) checkForUpperCase:(NSString *)data;/** * 校验只能输入由26个小写英文字母组成的字符串 * * @param data 字符串 * * @return 结果 */+ (BOOL) checkForLowerAndUpperCase:(NSString *)data;/** * 是否含有特殊字符(%&’,;=?$\等) * * @param data 数据 * * @return 结果 */+ (BOOL) checkForSpecialChar:(NSString *)data;/** * 校验只能输入数字 * * @param number 数字 * * @return 结果 */+ (BOOL) checkForNumber:(NSString *)number;/** * 校验只能输入n位的数字 * * @param length n位 * @param number 数字 * * @return 结果 */+ (BOOL) checkForNumberWithLength:(NSString *)length number:(NSString *)number;@end
//// NSObject+checkTool.h// Created by on 16/6/15.// Copyright © 2016年 . All rights reserved.//#import "NSObject+checkTool.h"@implementation NSObject (checkTool)// ✅方法是对的,正则表达式可能根据需求变更#pragma mark - 邮箱校验+(BOOL)checkForEmail:(NSString *)email{ NSString *regEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; return [self baseCheckForRegEx:regEx data:email];}#pragma mark - 验证手机号+(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @"^1[3|4|5|7|8][0-9]\\d{8}$"; return [self baseCheckForRegEx:regEx data:mobilePhone];}#pragma mark - 验证电话号+(BOOL)checkForPhoneNo:(NSString *)phone{ NSString *regEx = @"^(\\d{3,4}-)\\d{7,8}$"; return [self baseCheckForRegEx:regEx data:phone];}#pragma mark - 身份证号验证+ (BOOL) checkForIdCard:(NSString *)idCard{ NSString *regEx = @"\\d{14}[[0-9],0-9xX]"; return [self baseCheckForRegEx:regEx data:idCard];}#pragma mark - 密码校验+(BOOL)checkForPasswordWithShortest:(NSInteger)shortest longest:(NSInteger)longest password:(NSString *)pwd{ NSString *regEx =[NSString stringWithFormat:@"^[a-zA-Z0-9]{%ld,%ld}+$", shortest, longest]; return [self baseCheckForRegEx:regEx data:pwd];}//----------------------------------------------------------------------#pragma mark - 由数字和26个英文字母组成的字符串+ (BOOL) checkForNumberAndCase:(NSString *)data{ NSString *regEx = @"^[A-Za-z0-9]+$"; return [self baseCheckForRegEx:regEx data:data];}#pragma mark - 小写字母+(BOOL)checkForLowerCase:(NSString *)data{ NSString *regEx = @"^[a-z]+$"; return [self baseCheckForRegEx:regEx data:data];}#pragma mark - 大写字母+(BOOL)checkForUpperCase:(NSString *)data{ NSString *regEx = @"^[A-Z]+$"; return [self baseCheckForRegEx:regEx data:data];}#pragma mark - 26位英文字母+(BOOL)checkForLowerAndUpperCase:(NSString *)data{ NSString *regEx = @"^[A-Za-z]+$"; return [self baseCheckForRegEx:regEx data:data];}#pragma mark - 特殊字符+ (BOOL) checkForSpecialChar:(NSString *)data{ NSString *regEx = @"[^%&',;=?$\x22]+"; return [self baseCheckForRegEx:regEx data:data];}#pragma mark - 只能输入数字+ (BOOL) checkForNumber:(NSString *)number{ NSString *regEx = @"^[0-9]*$"; return [self baseCheckForRegEx:regEx data:number];}#pragma mark - 校验只能输入n位的数字+ (BOOL) checkForNumberWithLength:(NSString *)length number:(NSString *)number{ NSString *regEx = [NSString stringWithFormat:@"^\\d{%@}$", length]; return [self baseCheckForRegEx:regEx data:number];}#pragma mark - 私有方法/** * 基本的验证方法 * * @param regEx 校验格式 * @param data 要校验的数据 * * @return YES:成功 NO:失败 */+(BOOL)baseCheckForRegEx:(NSString *)regEx data:(NSString *)data{ NSPredicate *card = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regEx]; if (([card evaluateWithObject:data])) { return YES; } return NO;}@end
阅读全文
0 0
- NSPredicate(谓语),验证邮箱、电话等用法(1)
- js验证邮箱,固定电话,手机等
- NSPredicate(谓语)-类方法(2)
- JS验证(电话、邮箱。。。)
- easyui 自定义表单内容验证(汉字、字母、数字、邮箱、电话、邮编、身份证号等)
- easyui 自定义表单内容验证(汉字、字母、数字、邮箱、电话、邮编、身份证号等)
- iOS中邮箱、电话等正则表达验证
- 验证邮编电话邮箱
- jQuery_验证电话邮箱
- 邮箱跟电话正则验证
- easyui 自定义表单内容验证(汉字、字母、数字、邮箱、电话、邮编、身份证号等)
- 正则验收:对邮箱、手机号码、身份证、电话、整数、正数、字符串是否为空等一些验证
- easyui 自定义表单内容验证(汉字、字母、数字、邮箱、电话、邮编、身份证号等)
- easyui 自定义表单内容验证(汉字、字母、数字、邮箱、电话、邮编、身份证号等)
- 正则表达式 验证 电话,手机,邮箱,数字
- 正则表达式验证 邮箱 电话 非空
- 通用JS验证(手机,电话,邮箱,QQ)
- Flex 正则表达式 电话、邮箱验证
- 基于 CentOS 使用 Jenkins 实现 Android 持续集成
- HA heartbeat在虚拟机中的实现及其问题
- 使用spring事件驱动机制,实现权限信息的自动收集存库
- File对象
- 总结一下需要复习的知识点
- NSPredicate(谓语),验证邮箱、电话等用法(1)
- Android输入系统简述
- 机器学习笔记(一)
- Java NIO系列教程(五) 通道之间的数据传输
- 随笔
- HDU 6178 Monkeys【dfs】【输入外挂模板】
- Java验证码的编写
- Ionic3取消滚动条 --记录
- C++合并两个有序的单链表