iOS 项目日志 -- 密码强度 实现

没有采用Predicate 直接用的是bool值做的

代码如下

@interface ViewController ()<UITextFieldDelegate>

@property (weak, nonatomic) IBOutlet UIProgressView *levelProgress;

@property (weak, nonatomic) IBOutlet UITextField *pwdTextField;

@property (weak, nonatomic) IBOutlet UITextField *confirmPwdTextField;

@property (weak, nonatomic) IBOutlet UILabel *levelLabel;

@end

@implementation ViewController

-(BOOL)judgeWithArray:(NSArray *)arr withPwd:(NSString *)pwd

{

NSRange range;

for (int i =0; i<arr.count; i++) {

range = [pwd rangeOfString:arr[i]];

if (range.location != NSNotFound) {

return YES;

}

}

return NO;

}

-(void)textFieldDidEndEditing:(UITextField *)textField{

[self.pwdTextField becomeFirstResponder];

//    NSLog(@"%d",self.pwdTextField.isEditing);

NSArray* termArray1 = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", @"d", @"e", @"f", @"g", @"h", @"i", @"j", @"k", @"l", @"m", @"n", @"o", @"p", @"q", @"r", @"s", @"t", @"u", @"v", @"w", @"x", @"y", @"z", nil];

NSArray* termArray2 = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"0", nil];

NSArray* termArray3 = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L", @"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Y", @"Z", nil];

NSArray* termArray4 = [[NSArray alloc] initWithObjects:@"~",@"`",@"@",@"#",@"$",@"%",@"^",@"&",@"*",@"(",@")",@"-",@"_",@"+",@"=",@"{",@"}",@"[",@"]",@"|",@":",@";",@"“",@"‘",@"‘",@"<",@",",@".",@">",@"?",@"/",@"、", nil];

NSString *strResult1 = [NSString stringWithFormat:@"%d",[self judgeWithArray:termArray1 withPwd:self.pwdTextField.text]];

NSString *strResult2 = [NSString stringWithFormat:@"%d",[self judgeWithArray:termArray2 withPwd:self.pwdTextField.text]];

NSString *strResult3 = [NSString stringWithFormat:@"%d",[self judgeWithArray:termArray3 withPwd:self.pwdTextField.text]];

NSString *strResult4 = [NSString stringWithFormat:@"%d",[self judgeWithArray:termArray4 withPwd:self.pwdTextField.text]];

NSMutableArray *arrResult = [[NSMutableArray alloc]init];

[arrResult addObject:strResult1];

[arrResult addObject:strResult2];

[arrResult addObject:strResult3];

[arrResult addObject:strResult4];

int intResult = 0;

for (int j = 0; j<arrResult.count; j++) {

if ([arrResult[j] isEqualToString:@"1"]) {

intResult ++;

}

}

if (intResult <2) {

self.levelLabel.text = @"弱";

self.levelProgress.progress = 0.2;

self.levelProgress.progressTintColor = [UIColor redColor];

}else if(intResult == 2){

self.levelLabel.text = @"中";

self.levelProgress.progressTintColor = [UIColor yellowColor];

self.levelProgress.progress = 0.6;

}else if (intResult >2){

self.levelProgress.progressTintColor = [UIColor greenColor];

self.levelProgress.progress = 0.9;

self.levelLabel.text = @"强";

}

}

- (void)viewDidLoad {

[super viewDidLoad];

self.pwdTextField.delegate = self;

}

时间: 2024-10-10 13:59:59

iOS 项目日志 -- 密码强度 实现的相关文章

iOS项目日志1-联系人列表

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 今天开始记录一下自己写的每一个项目的日志 下面就是联系人列表的日志 在SB中 做好初步的视图构建 设置segwe的id 设置观察者,观察每一个textfield的数值变化 然后设置好 观察方法textchange 设置segwe的实现 最后实现点击事件 初步实现 基本

多平台实现密码强度(Javascript 、android、ios)

密码强度是目前很常用的一种功能,密码强度的实现,在web端都很好实现,可以很轻松的使用Javascript方法实现,目前因为项目需要,要在手机app上也实现密码强度,并且同时要在Android和ios上都实现相同功能,密码复杂度,无外乎大写字母.小写字母.数字和特殊符号,且需要加上重复字符出现的次数等,一般常用的方法都是使用正则表达式. 查阅了很多资料,网上在app端实现密码强度的例子基本没有(手机QQ是调用的web页面,支付根本没有密码复杂度),且又要web端和app端的三种语言通用,没办法只

ios项目里扒出来的json文件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #d12f1b } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "PingFang SC"; color: #d12f1b } p.p4 {

2019年5月23日项目日志

体育馆团体预约系统 UML软件工程项目日志 May,23th ,2019 项目日志 May 22th,晚上21:40 地点&沟通方式:微信 内容:各对象参数内容,数据库涉及范围,修改过程模型,建立数据模型 May 23th,晚上21:40 总结文档,书写博客 结构化需求分析概述 功能分解图(功能需求优先级.主要涉众优先级) 根据上周的UML功能介绍图改进,分清了层次,以及优先级 需求细化与优先级划分 1. 功能需求: 场馆管理,添加.删除.修改场馆信息 客户团体通过页面提交资料和认证请求,由管理

关于目前自己iOS项目使用的第三方开源库

1.AFNetworking 目前比较推荐的iOS网络请求组件,默认网络请求是异步,通过block回调的方式对返回数据进行处理. 2.FMDB 对sqlite数据库操作进行了封装,demo也比较简单. 3.MBProgressHUD 也是iOS项目常用的一个组件,用于显示过渡效果的,比如网络请求之前显示loading,网络结束隐藏loading.建议封装在BaseViewController中,所有ViewController继承就能使用. 4.MJRefresh 这个是传智播客李明杰老师的作品

IOS项目-处女作

我最近一直都有在看关于IOS项目的知识,今天也总算是迎来了我的第一个IOS项目.不巧这个项目并不是从头开始开发,而是在基础上维护并添加一些模块. 噗~不管怎么样,还是来分析分析一下源码吧~我这里首先看到的是AppDelegate_iPad.m下的didFinishLaunchingWithOptions方法,这个方法顾名思义应该是应用启动加载完成后所执行的一个方法. - (BOOL)application:(UIApplication *)application didFinishLaunchi

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结. IOS崩溃日志分类: 一.低内存崩溃:IOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存.这些通知发送到所有正在运行的应用和进程,试图收回一些内存.如果内存使用依然居高不下,系统将会终止后台线程以缓解内存压力.如果可用内存足够,应用将能够继续运行而不会产生崩溃报告.否则,应用将被iOS终止,并产生低内存崩溃报告

开源 iOS 项目分类索引大全

GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错- BlocksKit 将Block风格带入UIKit和Founcation cocoa-helpers 一些Cocoa的扩展 2年前的工程 CoconutKit 一系列扩展和一些自定组件 STUtils 一系列扩展包 PSFoundation 一系列扩展 和功能增强 ConciseK

iOS 项目中用到的一些开源库和第三方组件

iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有更多的时间和精力能更加专注的做好自己的产品 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图缓存组件 UICKeyChainStore 存放用户账号密码组件 Reachability 监