1、代码实现"密码至少为9位,并需包含大写字母、小写字母、数字或特殊字符等三种"

返回0、1、2为格式不正确,返回4为密码格式正确

-(int)checkIsHaveNumAndLetter:(NSString*)password

{

//数字条件

NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil];

//符合数字条件的有几个字节

NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:password

options:NSMatchingReportProgress

range:NSMakeRange(0, password.length)];

//英文字条件

NSRegularExpression *sLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[a-z]" options:NSRegularExpressionDotMatchesLineSeparators error:nil];

//符合英文字条件的有几个字节

NSUInteger sLetterMatchCount = [sLetterRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];

//英文字条件

NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Z]" options:NSRegularExpressionDotMatchesLineSeparators error:nil];

//符合英文字条件的有几个字节

NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];

if (password.length < 9) {

// 密码长度不正确

return 0;

} else {

// 没有大写或小写

if (tLetterMatchCount == 0 || sLetterMatchCount == 0) {

return 1;

} else {

if (tNumMatchCount > 0) {

return 4;

} else{

if(tNumMatchCount + tLetterMatchCount + sLetterMatchCount < password.length){

return 4;

} else{

return 2;

}

}

}

}

}

需注意:NSRegularExpressionOptions,如果不区分大小写可以使用NSRegularExpressionCaseInsensitive

NSRegularExpressionCaseInsensitive              = 1 << 0,  // 不区分大小写的NSRegularExpressionAllowCommentsAndWhitespace  = 1 << 1,  // 忽略空格和# -NSRegularExpressionIgnoreMetacharacters      = 1 << 2,  // 整体化NSRegularExpressionDotMatchesLineSeparators  = 1 << 3,  // 匹配任何字符,包括行分隔符NSRegularExpressionAnchorsMatchLines                  = 1 << 4,  // 允许^和$在匹配的开始和结束行NSRegularExpressionUseUnixLineSeparators      = 1 << 5,  // (查找范围为整个的话无效)NSRegularExpressionUseUnicodeWordBoundaries  = 1 << 6    // (查找范围为整个的话无效)

android账号密码长度限制,限制输入密码长度相关推荐

  1. 简单步骤,使用 Android studio 实现保存 QQ 账号密码,和简易 QQ 用户登录界面

    利用 Android studio 2021 软件输出一个简易用户登录界面,拥有头像并且能够实现对自行输入的账号密码进行保存,文件名为 saveqq,功能实现对账号与密码的输入和存储,简单QQ界面布局 ...

  2. Android之模仿QQ保存账号密码

    先写个布局文件activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Relati ...

  3. android中注册的账号密码储存在,Android中使用SharedPreferences完成记住账号密码的功能...

    效果图: 记住密码后,再次登录就会出现账号密码,否则没有. 分析: SharedPreferences可将数据存储到本地的配置文件中 SharedPreferences会记录CheckBox的状态,如 ...

  4. android SharedPreferences实现用户的注册和保存账号密码

    在android开发中,我们做用户登录和注册的时候需要将用户名和密码保存,下次打开的时候记住应户名和密码.关于注册保存用户密码的方式和记住用户名和密码的保存方式有多种,这里介绍SharaedPrefe ...

  5. 关于 android 中 edittext 特殊字符过滤和字符长度限制的最优方法

    关于 android 中 edittext 特殊字符过滤和字符长度限制的最优方法 1985 T.于星期四, 07/03/2013 - 20:36提交 在android开发中,经常会碰到edittext ...

  6. 关于 Android 中 TabLayout 下划线适配文字长度解析(附清晰详细的源码解析)

    温故而知新 坚持原创 请多多支持 一.问题背景 假期在做项目的时候,当时遇到了一个需求就是需要使用 TabLayout + ViewPager 来实现一个上部导航栏的动态效果,并且希望下划线的长度等于 ...

  7. android中注册的账号密码储存在,android SharedPreferences实现用户的注册和保存账号密码...

    在android开发中,我们做用户登录和注册的时候需要将用户名和密码保存,下次打开的时候记住应户名和密码.关于注册保存用户密码的方式和记住用户名和密码的保存方式有多种,这里介绍SharaedPrefe ...

  8. android 记住多个账号,Android实现记住账号密码功能

    本文实例为大家分享了Android实现记住账号密码的具体代码,供大家参考,具体内容如下 布局 一个复选框 android:id="@+id/checkbox" android:ra ...

  9. Android 简单的账号密码登陆界面(IO流)

    Android 简单的账号密码登陆界面(IO流) 用到了map<String,String> .IO流等. MainActivity代码如下: package com.xh.tx.file ...

  10. git http仓库账号密码缓存至本地:不用每次git push都需要输入密码的方法(类似于windows的凭据管理)

    在输入一次账号密码之后,执行如下命令即可: git config --global credential.helper cache

最新文章

  1. 编译时错误之 error C2338: tuple_element index out of bounds
  2. 牛客网 【每日一题】6月8日 [SCOI2005]最大子矩阵
  3. VMware下Ubuntu无法全屏显示问题
  4. java中单例模式的3种实现
  5. token 防止csrf
  6. Python字符串格式化--formate()的应用
  7. Oracle入门教程,新手必读
  8. 阿里云rds mysql 并发_干货 | 浅析RDS MySQL 8.0语句级并发控制-阿里云开发者社区
  9. 电脑配置知识_电脑小知识:装机不求人!10 分钟电脑配置挑选速成攻略|硬盘|电脑|cpu|装机|固态硬盘|机械硬盘...
  10. Linux制作补丁与打补丁简单用法
  11. 数据标准详细概述-2022
  12. [HYSYS学习]逻辑单元-循环器
  13. 断层约束的等值线追踪
  14. 对《java程序员上班那点事》笔者对数组占用内存质疑
  15. Vue使用二维码生成微信支付
  16. eclipse Luna 用tomct7 部署项目
  17. 蓝桥杯2022年第十三届决赛真题-修路
  18. 智能服务机器人产品及解决方案
  19. Intel PinTools使用笔记——INS_InsertCall()
  20. 1725. 组队井字游戏

热门文章

  1. OpenHarmony 2.0和HarmonyOS发布会快评
  2. 【中国互联网江湖30年历史】再无风清扬,再有少年郎
  3. 微信小程序 和公众号 内嵌网页或H5页面记录
  4. react-ssr之路由配置
  5. 软考高级系统架构设计师系列论文:详细介绍一篇论文的万能模版,快速了解如何写好一篇架构设计师论文
  6. Pr:制作片尾滚动字幕(基本图形法)
  7. ug10Java环境变量_关于UG环境变量
  8. 如何区分网线是几类的_如何区分家里的网线是超五类还是超六类的呢?
  9. 比特大陆将任命新任首席执行官
  10. xmr-stak-cpu 安装及使用