NSString格式校验

  在项目开发过程当中,NSString类型的变量是常常用到的,并且咱们经常会对其格式进行对应的各类校验,你好比,在登陆注册的时候,须要验证用户名的长度,用户名的字符组成等等,其实如今也有不少第三方提供的NSString的Category老方便咱们作各类判断。因为最近作的一个项目须要判断密码的格式。主要在如下几个方面。数组

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

  

/**lua

 *  判断密码的强度spa

 *orm

 *  @param password 密码字符串开发

 *字符串

 *  @return若是密码比较强则返回YES,若是密码较弱返回是NOinput

 */it

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

    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;

    }

}

相关文章
相关标签/搜索