当前位置: 首页 > 知识库问答 >
问题:

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

尉迟京
2023-03-14
 - (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];
}

共有1个答案

夏侯自珍
2023-03-14

你可以试试这个

- (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})-使用lookahead(?=)并说明密码必须至少包含2位数字

 类似资料:
  • 本文向大家介绍JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位,包括了JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上所述是小编给大家介绍的JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位,希望对大家有所帮助,如果大家有任何疑问

  • 问题内容: 我的应用程序与Firebase数据库和身份验证链接。 用户创建帐户时,唯一的密码要求是6个字符。无论如何,我可以使密码更复杂,例如使它们具有大写字母和数字。 我可以直接从firebase中执行此操作,还是需要从我的代码中执行此操作? 问题答案: 使用此功能。它包括6-15的范围,即最少6个字符和最多15个字符。分别为一个大写字母和一个数字。 对于有效的密码字符串,此函数将返回true

  • 我需要一个正则表达式,它应该至少有一个数字字符,允许大小写字母,也允许特殊字符 但它对最大字符10无效。

  • 我想在Go中使用AES-256加密一个字符串,无需任何GCM处理,以与MQL4进行比较。当我试图加密特殊字符或数字时,我会遇到问题。我应该以某种方式预处理我的明文吗?我是新来的,所以任何帮助都将不胜感激;我的代码在这个解释下面。 如果我加密明文“这是一个秘密”,然后解密密文(编码为十六进制),我会得到相同的结果(即“这是一个秘密”)。pt是下面代码中明文的变量名。 如果我试图加密“这是一个秘密;1

  • 我需要一个正则表达式来检查: 密码至少包含八个字符,其中至少包含一个数字,并且包含大小写字母和特殊字符,例如、、。 它不能是您的旧密码,也不能包含您的用户名、或 这里是我的验证表达式,它针对八个字符,包括一个大写字母,一个小写字母,和一个数字或特殊字符。 密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符,我怎么写呢?