gpt4 book ai didi

objective-c - 验证 UITextField 中的字母数字值

转载 作者:太空狗 更新时间:2023-10-30 03:48:32 25 4
gpt4 key购买 nike

我想在文本字段中输入字母数字值。如果用户只输入字符或数字,然后发送消息。甚至不接受特殊字符。

        NSString *str = askIdTxt.text;
NSCharacterSet *alphanumericSet = [NSCharacterSet alphanumericCharacterSet];
NSCharacterSet *numberSet = [NSCharacterSet decimalDigitCharacterSet];
BOOL isAlphaNumericOnly = [[str stringByTrimmingCharactersInSet:alphanumericSet] isEqualToString:@""] && ! [[str stringByTrimmingCharactersInSet:numberSet] isEqualToString:@""];
if (isAlphaNumericOnly) {
NSLog(@"isAplhaNumericOnly: %@",(isAlphaNumericOnly? @"Yes":@"No"));
}

这总是返回真。我不明白这有什么问题。

最佳答案

如何使用正则表达式:

-(BOOL)isAlphaNumericOnly:(NSString *)input 
{
NSString *alphaNum = @"[a-zA-Z0-9]+";
NSPredicate *regexTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", alphaNum];

return [regexTest evaluateWithObject:input];
}

然后使用它

if([self isAlphaNumeric:str])
{
NSLog(@"IT IS ALPHA NUMERIC STRING");

}

编辑可以使用相同的技术来验证密码,您只需要更好的正则表达式:

-(BOOL)isPasswordStrong:(NSString *)password {
/*
8-20 chars
at least one letter
at least one number OR special character
no more than 3 repeated characters
*/
NSString *strongPass= @"^(?!.*(.)\\1{3})((?=.*[\\d])(?=.*[A-Za-z])|(?=.*[^\\w\\d\\s])(?=.*[A-Za-z])).{8,20}$";;
NSPredicate *regexTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strongPass];

return [regexTest evaluateWithObject:password];
}

使用正则表达式,您可以创建不同的规则,但这可以让您抢先一步,

关于objective-c - 验证 UITextField 中的字母数字值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778959/

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