gpt4 book ai didi

ios - 检查字符串是否包含字符集中的一个字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:50 54 4
gpt4 key购买 nike

我需要检查密码的复杂性。条件之一是密码必须至少包含一个数字。我尝试了以下方法,但它没有给我预期的结果,我不知道哪里出了问题。

NSString *regexpNumbers = @"[0-9]+";
NSPredicate *predicateNumbers = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regexpNumbers];
result &= [predicateNumbers evaluateWithObject:password];

evaluateWithObject: 即使密码包含一些数字,方法也返回 NO。

最佳答案

使用rangeOfCharacterFromSet:

您可以像这样创建自己的字符集:

NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_"];
s = [s invertedSet];

NSString *string = @"String to find";
NSRange r = [string rangeOfCharacterFromSet:s];
if (r.location != NSNotFound) {
NSLog(@"the string contains illegal characters");
} else {
NSLog(@"Found!!!");
}

使用NSPredicate:

NSString *myRegex = @"[A-Z0-9a-z_]*"; 
NSPredicate *myTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", myRegex];
NSString *string = @"String to find";
BOOL valid = [myTest evaluateWithObject:string];

关于ios - 检查字符串是否包含字符集中的一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30664784/

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