gpt4 book ai didi

ios - 如何验证必须包含数字或字母(或两者)以及特殊字符的密码?

转载 作者:行者123 更新时间:2023-11-28 17:59:00 25 4
gpt4 key购买 nike

您好,我目前正在使用以下内容来验证密码,但我也想包含特殊字符。目前它只包含数字和字母。请帮忙。

 - (BOOL)validatePassword:(NSString *) password{
NSString *ACCEPTABLE_CHARECTERS = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ACCEPTABLE_CHARECTERS] invertedSet];
NSString *filtered = [[password componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
return [password isEqualToString:filtered];
}

最佳答案

你可以试试这个

- (BOOL)validatePassword:(NSString *) password{
if(password.length == 0){
return NO;
}
NSString *regex = @"^(?=(.*\d){2})(?=.*[a-zA-Z])(?=.*[!@#$%])[0-9a-zA-Z!@#$%]{8,}";
NSPredicate *passwordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
return [passwordPredicate evaluateWithObject:password];
}

解释

(?=(.*\d){2}) - 使用先行 (?=) 并说明密码必须至少包含 2 位数字

(?=.*[a-zA-Z]) - 使用先行并说明密码必须包含字母

(?=.*[!@#$%]) - 使用先行并说明密码必须包含 1 个或多个已定义的特殊字符

[0-9a-zA-Z!@#$%] - 指示允许的字符

{8,} - 表示密码长度必须至少为 8 个字符

它可能需要一些调整,例如准确指定您需要哪些特殊字符,但它应该可以解决问题。

关于ios - 如何验证必须包含数字或字母(或两者)以及特殊字符的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com