ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)
2024-10-09 12:41:50
可以写一个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
一起成长。
最新文章
- HashMap和 Hashtable的比较
- [基础技能] 安全技术——哈希算法密码破解之彩虹表(Rainbow Table)学习
- 十分钟了解分布式计算:Google Dataflow
- CentOS 6.6 (Desktop)部署Apache、MySQL以及Eclipse Luna等记录
- ORM框架 EF - code first 的封装
- makefile 分析 -- 内置变量及自动变量
- invalid initialization of non-const reference of type与discards qualifiers
- 把数组A的奇数放在左边,偶数放在右边
- 自己去看dubbo源码
- Redis 数据序列化方法 serialize, msgpack, json, hprose 比较
- Jedis与Redisson选型对比
- ffmpeg 在windows 上编译
- MFC学习笔记_关于CSpinButtonCtrl
- [双硬盘GPT分区安装linux] ----安装
- 编程一小时 code.org [六一关注]
- SpringMVC学习笔记四:数据绑定
- 利用 WireShark 深入调试网络请求
- 【NOI2018】
- Codeforces 1030F 【线段树】【好题】
- ERWin7.2在Windows 8.1中生成数据库遇到的问题!