可以写一个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

一起成长。

ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)的更多相关文章

  1. java 32位MD5加密的大写字符串

    package com.aok.test; import java.security.MessageDigest; public class MD5Test { public static void ...

  2. js MD5加密后的字符串

    js MD5加密后的字符串 <script language="JavaScript"> /************************************** ...

  3. iOS 中常用的对密码进行MD5加密

    iOS中MD5加密 标签(空格分隔): iOS MD5 + (NSString *)MD5:(NSString *)str { const char *cStr = [str UTF8String]; ...

  4. iOS常用的正则表达式总结

    /* 正则表达式说明: . 匹配除换行符以外的任意字符 \\w 匹配字母或数字或下划线或汉字 \\s 匹配任意的空白符 \\d 匹配数字 \\b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字 ...

  5. IOS开发-OC学习-MD5加密

    MD5的全称是Message-Digest Algorithm 5. MD5加密算法为现在应用最广泛的哈希算法之一,该算法广泛应用于互联网网站的用户文件加密,能够将用户密码加密为128位的长整数.数据 ...

  6. IOS 杂笔-9 (MD5 加密)

    首先是一段对MD5的简介 *出自一位大牛之手* Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护 ...

  7. iOS 开发 Message Digest Algorithm 5(MD5加密)

    MD5的全称是Message Digest Algorithm 5(消息摘要算法第五版),是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.在90年代初由MIT Laboratory ...

  8. md5sum 生成 经md5加密后的字符串

    ➜ ~ echo -n 'admin' | md5sum 21232f297a57a5a743894a0e4a801fc3 - ➜ ~ md5sum -h md5sum: invalid option ...

  9. Js jquery常用的身份证号码 邮箱电话等验证

    刷了很多博客,https://www.cnblogs.com/hao-1234-1234/p/6636843.html 只有这个比较靠谱.

随机推荐

  1. Shaderlab-10chapter-立方体纹理、玻璃效果

    10.1.1天空盒子 window - Lighting - skyMaterial 创建mat,shader选自带的6 side shader 确保相机选skybox 如果某个相机需要覆盖,添加sk ...

  2. bzoj3155Preprefix sum

    bzoj3155Preprefix sum 题意: 询问一个数组前缀和数组的前缀和,支持单点修改. 题解: SSi=sigma(i,1,n)(n-i+1)*ai=(n+1)*Si-sigma(i,1, ...

  3. 【Nginx】如何配置Nginx日志?这是最全面的一篇了!!

    写在前面 日志对于统计排错来说非常有利的.本文总结了 Nginx 日志相关的配置如 access_log. log_format.open_log_file_cache. log_not_found. ...

  4. 用CBrother脚本实现smtp协议发送一份邮件

    用CBrother脚本实现smtp协议发送一份邮件 之前用CBrother脚本写了一个拯救“小霸王服务器”的程序,公司人用着都挺好用,但是有时候谁重启了服务器其他人不知道,造成了多人多次重启,每个人都 ...

  5. Android 性能优化 ---- 内存优化

    1.Android内存管理机制 1.1 Java内存分配模型 先上一张JVM将内存划分区域的图 程序计数器:存储当前线程执行目标方法执行到第几行. 栈内存:Java栈中存放的是一个个栈帧,每个栈帧对应 ...

  6. STL源码剖析:配接器

    启 配接器就是适配器 STL中的适配器一共三种: 迭代器适配器 是一种观念上的改变,如将赋值操作变成插入,前进变成后退,等 函数适配器 STL中最广泛的配接器群体 可以实现连续配接 配接操作:bind ...

  7. 五分钟带你深入了解Redis

    相信phper都知道Redis是什么,既然如此,为表仪式感,首先我还是得说说什么是Redis. Redis是什么 redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是 ...

  8. HTTP请求方式及常见问题

    请求方式 当前HTTP一共有八种方式.有三种是有HTTP1.0提供,剩余五种则是有HTTP1.1提供 常见问题 啥是OPTIONS?有啥作用 是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前, ...

  9. 新款iPad Pro4的电池续航和充电速度对比

    3月18日晚苹果官网上架了两款新iPad Pro,两款iPad Pro 2020外观大小分别为11英寸和12.9英寸,搭载苹果A12Z仿生芯片,起售价分别为6288元和7899元.那么两款iPad P ...

  10. APP自动化 -- MobileBy

    一.BobileBy源码 selenium中有 By appium就有MobileBy. 二.MobileBy示例 MobileBy就是继承的By,所以,语法基本是一样的.