在项目开发过程中,NSString类型的变量是经常用到的,而且我们常常会对其格式进行对应的各种校验,你比如,在登录注册的时候,需要验证用户名的长度,用户名的字符组成等等,其实现在也有很多第三方提供的NSString的Category老方便我们做各种判断。由于最近做的一个项目需要判断密码的格式。主要在以下几个方面。

  1.判断密码的强度:在一些项目中,不允许密码中出现“123456”,“123”,“abcde”等这种比较简单而且有规律的密码。

  

/**

*  判断密码的强度

*

*  @param password 密码字符串

*

*  @return如果密码比较强则返回YES,如果密码较弱返回是NO

*/

- (BOOL)judgePassWordStrengthWithPassWord:(NSString*)password{

NSArray *array = @[@"000000",@"111111",@"11111111",@"112233",@"123123",@"123321",@"123456",@"12345678",@"654321",@"666666",@"888888",@"abcdef",@"abcabc",@"abc123",@"a1b2c3",@"aaa111",@"123qwe",@"qwerty",@"qweasd",@"admin",@"password",@"p@ssword",@"passwd",@"iloveyou",@"5201314",@"password",@"123456",@"12345678",@"qwerty",@"abc123",@"monkey",@"1234567",@"letmein",@"trustno1",@"dragon",@"baseball",@"111111",@"iloveyou",@"master",@"sunshine",@"ashley",@"bailey",@"passw0rd",@"shadow",@"123123",@"654321",@"superman",@"qazwsx",@"michael",@"football"];

NSRange range;

BOOL result = YES;

int count  = array.count;

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

range = [password rangeOfString:array[i]];

if(range.location != NSNotFound){

result = NO;

}

}

return result;

}

可以看到,对于一些不允许出现的密码,组合成一个数组,然后针对每一个数组中的元素来和密码进行比对,看密码是否和其相同,或者包含。

2.判断密码中是否有汉字,对于一些字符串由于编码的原因,不允许出现汉字。

  

/**

*  判断密码是否包含汉字

*

*  @param inputString 字符串

*

*  @return如果包含汉字,则返回YES,如果不包含汉字,则返回NO

*/

-(BOOL)isHasChinese:(NSString *)inputString{

for(int i=0; i< [inputString length];i++){

int a = [inputString characterAtIndex:i];

if( a > 0x4e00 && a < 0x9fff)

return YES;

}

returnNO;

}

判断字符串中是否包含汉字,只能通过拆解字符串中的汉字,然后针对每个字符的ascall码来判断。

3.判断字符串为手机号码 

-(BOOL)isNumText:(NSString *)aNumString

{

NSString *regex = @"^((13[0-9])|(147)|(15[^4,\\D])|(18[0-9]))\\d{8}$";

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

BOOL isPhoneNumRight;

isPhoneNumRight = [predicate evaluateWithObject:aNumString];

if(isPhoneNumRight)

{

return NO;

}else

{

return YES;

}

}

NSString格式校验的更多相关文章

  1. 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验

    开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...

  2. JSON格式校验

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. 通过Pojo对象 field 属性加注解实现格式校验,极大的降低代码量

    近期做一个接口.接受外系统的报文,通过XStream转换成java对象以后.须要对当中的字段做格式校验. 要求例如以下: 传统的方式是硬编码校验.可是对于field非常多的情况.代码量暴增.easy出 ...

  4. yaml语法及格式校验

    基本语法 1.yml文件以缩进代表层级关系 2.缩进不允许使用tab只能使用空格 3.空格的个数不重要,只要相同层级的元素左对齐即可 4.大小写敏感 5.数据格式为,名称:(空格)值 也就是说,如果冒 ...

  5. js正则表达式进行格式校验

    今天做了个js正则表达式的练习,利用正则表达式进行注册信息格式验证,注册信息界面如下: 格式要求: 1.学号项不能为空,必须为纯数字,不能与数据库中的重复,正则表达式/^\d+$/g: 2.姓名项不能 ...

  6. Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验

    安装方式有如下几种. 1.最常用的安装方式. # 进入atom插件文件夹 cd ~/.atom/packages/ # git clone 插件源文件 git clone https://github ...

  7. 转化秒数为正规的时间格式{NSString格式的秒数转成NSDate格式后再以NSString形式输出)

    -(NSString*)changeNumToTime:(NSString*)str { NSDate *date = [NSDate dateWithTimeIntervalSince1970:[s ...

  8. js判断当前时间前几天和格式校验

    addday天后的日期 function time(addday) { var now= new Date(); nowdate=now.getDate(); //alert(nowdate); no ...

  9. intellij idea 之 CheckStyle 代码格式校验

随机推荐

  1. Python在Windows下安装第三方库浅谈

    在用python编写代码时,往往需要用到第三方库,那么python如何去用第三方库呢,首先我们先来看看是如何安装的,方法可能会很多,但这边只介绍一种,其它请百度或google 比如asyncio,这里 ...

  2. MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝。

    代码编写完成,计划发布一个版本测试,没想到发布到IIS7 竟然报错“403-禁止访问”.还真第一次遇到这种问题..... 折腾了半天,终于解决. 1.提示报错403: 禁止访问: 访问被拒绝.您无权使 ...

  3. 网站微信登录授权 ASP.NET

    最新做一些项目都有微信登录注册什么的,今天就把自己整理的demo提供给大家 微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过code换取网页授权access_token, ...

  4. AngularJs自定义指令详解(6) - controller、require

    在前面文章中提到一旦声明了require,则链接函数具有第四个参数:controller. 可见require和controller是配合使用的. 在自定义指令中使用controller,目的往往是要 ...

  5. VS2013开发 windows服务 挂到服务器上执行

    这是百度经验的链接,本人主要参考的他.http://jingyan.baidu.com/article/cd4c2979e9330d756f6e6070.html 1 创建windows服务项目 2 ...

  6. 关于移动端input框 在微信中 和ios中无法输入文字的问题

    这个是一个提交的页面但是总是无法输入进去文字 在uc中是可以的 但是在微信中 或者ios自带浏览器是无法输入的  绞尽脑汁  找了半天  才发现自己多加了一段代码(这个代码是模版中自带的   我靠) ...

  7. 通过ssh连接github

    1.检查是否已经存在ssh key $ cd ~/.ssh $ ls 如果该目录下存在id_rsa/id_rsa.pub/known_hosts这三个文件,则已经存在ssh key 直接跳转到第3步 ...

  8. 创建nim+安装vioc分区

    一.搭建nim服务器 1.安装须知 安装nim软件包,client随系统默认安装,这里需要安装的是bos.sysmgt.nim.master和bos.sysmgt.nim.spot,即bos.sysm ...

  9. 如何在fedora下安装fcitx和搜狗拼音

    过程参考了: http://blog.csdn.net/yang1982_0907/article/details/17100409 下载搜狗deb包:http://packages.linuxdee ...

  10. net 调用https接口

    public static void ProcessRequest() { //类似浏览器确认证书合法方法的绑定 ServicePointManager.ServerCertificateValida ...