可以写一个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. adb devices 不能连接设备 could not install *smartsocket* listener

    cmd以管理员身份运行命令adb devices  或adb reverse tcp:8081 tcp:8081,无法连接设备,出现上图信息. 输入命令:adb kill-server 再输入:adb ...

  2. Linux上运行安卓应用:安装使用Anbox

    文章目录 #0x0 简介 #0x1 安装教程 #0x11 第一步,安装需要的内核模块 #0x12 安装Anbox #0x2 使用Anbox #0x21 一些简单的设置 #0x22 安装APK #0x3 ...

  3. java 基本语法(六) 流程控制(三) 关键字:break和continue

  4. mongodb(五):聚合操作(python)

    pymongo的聚合操作 数据类型样式 /* 1 */ { "_id" : ObjectId("5e5a32fe2a89d7c2fc05b9fc"), &quo ...

  5. ValueError: X needs to contain only non-negative integers.

    for feature in short_cate_feature: enc.fit(data[feature].values.reshape(-1, 1)) base_train_csr = spa ...

  6. XSS原理及代码分析

    前言 XSS又叫跨站脚本攻击,是一种对网站应用程序的安全漏洞攻击技术.它允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响.XSS分为三种:反射型,存储型,和DOM型.下面我会构造有缺陷的代 ...

  7. nginx反向代理导致session失效的问题处理

    一同事求援:后台系统的登录成功了,但不能成功登进系统,仍然跳转到登录页,但同一套代码另一个环境却没有问题. 背景 经了解,他对同一个项目使用tomcat部署了两个环境,一个在开发服务器上,一个在他本机 ...

  8. kubernetes系列(十六) - Helm安装和入门

    1. helm简介 1.1 为什么需要helm 1.2 helm中几个概念 1.3 helm用途 2. helm安装 3. helm的基本使用 3.1 安装chart仓库里面的chart 3.2 创建 ...

  9. MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余(收藏系列)

    写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节,准 ...

  10. equals方法与==关系的总结

    /** * ==&&equals区别 * * ==比较的是栈内存中的值 * 对于基本类型数据,比较的是栈内存中的值 * 对于引用数据类型,比较的是栈内存中的值(值的真是含义是一个地址) ...