ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
时间:2022-04-26
本文章向大家介绍ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
可以写一个nssring的category 给nsstring 增加一些方法,而这些方法就是一些正则表达式。
比如写一个叫做Helper的类 创建完了就是 NSString+Helper
然后在进行编写 .h 和.m文件
#pragma mark - 验证相关
/* 验证相关 */
//1.是否是手机号
- (BOOL)isMobileNumber;
//2.是否是邮箱
-(BOOL)isValidateEmail;
//3.是否是空字符串
- (BOOL)isNullStr;
//4.是否是空对象
-(BOOL)isNull;
//5.数字转字符串
+(NSString*) stringFromInteger:(NSInteger)num;
//6.密码是否符合彼标准 8-14位字母数组的组合
-(BOOL)isValidatePwd;
#pragma mark - 功能相关
/* 功能相关 */
//1.md5加密
- (NSString *) md5;
//2.将字符串的首尾空格去掉
- (NSString *) trim;
.m文件
/* 验证相关 */
//1.是否是手机号
- (BOOL)isMobileNumber{
NSString * MOBILE = @"^1[3-9]\d{9}$";
NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
if ([regextestmobile evaluateWithObject:self] == YES) {
return YES;
}else{
return NO;
}
}
//2.是否是邮箱
-(BOOL)isValidateEmail{
NSString *emailRegex = @"^([a-z0-9A-Z]+[-_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:self];
}
//3.是否是空字符串
- (BOOL)isNullStr{
if ([self isEqualToString:@"<NULL>"]) {
return YES;
}else if ([self isEqualToString:@"(null)"]){
return YES;
}else if ([self isEqualToString:@"(NULL)"]){
return YES;
}else if ([self isEqualToString:@"<null>"]){
return YES;
}
return NO;
}
//4.是否是空对象
-(BOOL)isNull{
// 判断是否为空串
if ([self isEqual:[NSNull null]]) {
return YES;
}
else if ([self isKindOfClass:[NSNull class]])
{
return YES;
}
else if (self==nil){
return YES;
}
return NO;
}
//5.数字转字符串
+(NSString*) stringFromInteger:(NSInteger)num{
return [NSString stringWithFormat:@"%ld",num];
}
//6.密码是否符合彼标准 8-14位字母数组的组合
-(BOOL)isValidatePwd{
NSString *pwdRegex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,14}$";
NSPredicate *pwdTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pwdRegex];
return [pwdTest evaluateWithObject:self];
}
#pragma mark - 功能相关
/* 功能相关 */
//1.md5加密
- (NSString *) md5{
const char* str = [self UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, (CC_LONG)strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH*2];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02x",result[i]];
}
return ret;
}
//2.将字符串的首尾空格去掉
- (NSString *) trim{
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
这样就 大功告成了。使用的时候 导入类名:#import "NSString+Helper"
然后用的时候 ,就可以直接用了
比如:
//验证电话号码
NSString *phoneNUM = @"17778176004";
NSLog(@"phoneNUM:%d",[phoneNUM isMobileNumber]);
//邮箱验证
NSString *emailStr = @"673658917@qq.com";
NSLog(@"emailStr:%d",[emailStr isValidateEmail]);
//md5加密 这个规则需要自己设置 前后台统一就好了
NSString *md5Str = @"abcdefg";
NSLog(@"md5Str:%@",[md5Str md5]);
//去掉前后的空格
NSString *trimStr = @" 1234567890 ";
NSLog(@"trimStr:%@",[trimStr trim]);
//是否是空字符串
NSString *nullStr = @"(null)";
NSLog(@"nullStr:%d",[nullStr isNullStr]);
//是否是空对象 貌似设置为空的时候就掉不起来下边的方法
NSString *nullObj = nil;
[nullObj isNull];
NSLog(@"null:%d",[nullObj isNull]);
如果在使用过程中遇见什么问题,可以联系我qq 673658917@qq.com
一起成长。
- C++ 与设计模式学习(其一)
- xz文件压缩工具的用法
- Java 中正确使用 hashCode 和 equals 方法
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
- openwrt将LAN口改为WAN方法
- c/c++----网站及其后门(CGI应用程序)
- C/C++深度copy和浅copy
- pycharm2016版汉化方法
- 8张图理解Java
- C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
- 解决Sublime在LinuxMint下无法输入中文的问题
- 使用Redis做MyBatis的二级缓存
- C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)
- windows添加静态路由
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Redis的使用--(一)集群的搭建
- Docker(二)基础使用
- Spring Boot实现加载自定义配置文件
- SpringBoot整合Dubbo
- SpringBoot统计实时在线人数
- 人工智能之Python人脸识别技术--face_recognition模块
- Redis的使用--(二)与Spring的整合
- Milvus 实战|利用 Milvus 搭建基于图的推荐系统
- k8s基本使用
- 淮师2017校园新闻爬取&&WordCloud年度词云分析
- 13 | Tornado源码分析:BaseIOStream 对象(下)
- 谈谈线程
- springboot整合定时框架-Elastic-job-lite
- hashMap的循环姿势你真的使用对了吗?
- SpringBoot整合常用技术