NSString格式校验
在项目开发过程中,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格式校验的更多相关文章
- 判断用户输入的银行卡号是否正确--基于Luhn算法的格式校验
开发中,有时候,为了打造更好的用户体验,同时减轻服务器端的压力,需要对于一些如,手机号码,银行卡号,身份证号码进行格式校验 下面是判断银行卡号输入是否正确的代码(基于Luhn算法的格式校验): iOS ...
- JSON格式校验
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- 通过Pojo对象 field 属性加注解实现格式校验,极大的降低代码量
近期做一个接口.接受外系统的报文,通过XStream转换成java对象以后.须要对当中的字段做格式校验. 要求例如以下: 传统的方式是硬编码校验.可是对于field非常多的情况.代码量暴增.easy出 ...
- yaml语法及格式校验
基本语法 1.yml文件以缩进代表层级关系 2.缩进不允许使用tab只能使用空格 3.空格的个数不重要,只要相同层级的元素左对齐即可 4.大小写敏感 5.数据格式为,名称:(空格)值 也就是说,如果冒 ...
- js正则表达式进行格式校验
今天做了个js正则表达式的练习,利用正则表达式进行注册信息格式验证,注册信息界面如下: 格式要求: 1.学号项不能为空,必须为纯数字,不能与数据库中的重复,正则表达式/^\d+$/g: 2.姓名项不能 ...
- Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
安装方式有如下几种. 1.最常用的安装方式. # 进入atom插件文件夹 cd ~/.atom/packages/ # git clone 插件源文件 git clone https://github ...
- 转化秒数为正规的时间格式{NSString格式的秒数转成NSDate格式后再以NSString形式输出)
-(NSString*)changeNumToTime:(NSString*)str { NSDate *date = [NSDate dateWithTimeIntervalSince1970:[s ...
- js判断当前时间前几天和格式校验
addday天后的日期 function time(addday) { var now= new Date(); nowdate=now.getDate(); //alert(nowdate); no ...
- intellij idea 之 CheckStyle 代码格式校验
随机推荐
- 编辑器Ultraedit快捷键
编辑器Ultraedit快捷键说到编辑器的快捷键,VIM是无与伦比的.要反对,也得是带脚踏板的EmaCS.UE还是有差距的,很大差距.注意:VIM是开源.免费的,而UE则需要注册.UE是Windows ...
- des加密解密——java加密,php解密
最近在做项目中,遇到des加密解密的问题. 场景是安卓app端用des加密,php这边需要解密.之前没有接触过des这种加密解密算法,但想着肯定会有demo.因此百度,搜了代码来用.网上代码也是鱼龙混 ...
- HTTP Client工具类
HTTP Client工具类: import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.ht ...
- js面向对象,多种创建对象方法!
1.对象字面量. var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(this.hour+":&quo ...
- mb_系列函数和普通字符函数的区别
<?php //phpinfo(); $str = 'abcdef'; echo strlen($str);// 6 echo '<br/>'; echo substr($str, ...
- C#实现MS-Office文档转Pdf(Word、Execel、PowerPoint、Visio、Project)
using System; using Microsoft.Office.Core; namespace Office { class Util { private Util() { } /// &l ...
- 用jQuery修改background图片平铺方式
<html><head> <title>测试css修改</title></head><body> <img src=&qu ...
- DHCP配置
DHCP服务器IP:192.168.1.10 一,安装dhcp [root@localhost ~]# yum install dhcp Loaded plugins: product-id, sub ...
- runtime 运行机制
// // HKPerson.h // runtimeDemo1 // // Created by 123 on 16/5/23. // Copyright © 2016年 123. All ...
- .Net多文件同时上传(Jquery Uploadify)
前提:领导给了我一个文件夹,里面有4000千多张产品图片,每张图片已产品编号+产品名称命名,要求是让我把4000多张产品图片上传到服务器端,而且要以产品编码创建n个文件夹,每张图片放到对应的文件夹下. ...