ios校验用户密码是否符合要求

该代码段展示了如何在iOS应用中验证用户输入的密码是否满足特定要求,即必须包含大小写字母、数字和特殊字符中的至少三种,且长度在8到20个ASCII可见字符之间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己在网上找了找,简单粗暴判断密码中需要包含大小写字母、英文符号、数字四中类型中的三种

+(BOOL)checkPassWord:(NSString *)passWord{

    NSString *passWordRegex = @"^[\\x21-\\x7e]{8,20}$";

    NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

    if ([passWordPredicate evaluateWithObject:passWord]) {

        NSInteger index = 0;

        

        passWordRegex = @".*[0-9]+.*";

        passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

        if ([passWordPredicate evaluateWithObject:passWord]) {

            index ++;

        }

        

        passWordRegex = @".*[a-z]+.*";

        passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

        if ([passWordPredicate evaluateWithObject:passWord]) {

            index ++;

        }

        

        passWordRegex = @".*[A-Z]+.*";

        passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

        if ([passWordPredicate evaluateWithObject:passWord]) {

            index ++;

        }

        

        passWordRegex = @".*[\\x21-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7B-\\x7F]+.*";

        passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

        if ([passWordPredicate evaluateWithObject:passWord]) {

            index ++;

        }

        

        if (index >= 3) {

            return YES;

        }

    }

    return NO;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值