gpt4 book ai didi

ios - 如何检查是否在 iOS 的文本字段中输入了字母数字字符

转载 作者:行者123 更新时间:2023-11-28 22:07:01 24 4
gpt4 key购买 nike

我有一个条件,我想检查文本字段中是否输入了任何特殊字符。

如果没有输入特殊字符,它应该返回 YES。如果在文本字段中输入了特殊字符,则会检查该特殊字符是否来自一组字符。如果输入的特殊字符不是来自特殊字符集,则应返回 NO。

这是我的代码:

NSCharacterSet *newrang = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"] invertedSet];
NSRange newrange = [pwd rangeOfCharacterFromSet:newrang];

if (!newrange.length)
{
return YES;
}
else
{
NSCharacterSet* set =
[[NSCharacterSet characterSetWithCharactersInString:@"!@#$%^&*"] invertedSet];
NSRange checkrange = [pwd rangeOfCharacterFromSet:set];
if (checkrange.location==NSNotFound)
{
NSLog(@"NO");
}
else
{
NSLog(@"YEs");
}

if ([pwd rangeOfCharacterFromSet:set].location == NSNotFound) {
return NO;
} else {
return YES;
}

}

我的问题是,如果我输入 abc@_123,它会返回 YES。相反,它应该返回 NO 因为一个无效的特殊字符:

"_"

存在。

谢谢

最佳答案

像我创建的 alphanumericCharacterSet invertedSet 一样创建要阻止的字符的 NSCharacterSet。然后使用 UITextFieldDelegate 方法验证每个字符.

回顾一下希望这对你有帮助

NSCharacterSet *blockCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#"] invertedSet];    
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
return ([characters rangeOfCharacterFromSet:blockCharacters].location == NSNotFound);
}

关于ios - 如何检查是否在 iOS 的文本字段中输入了字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23722029/

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