我有一个文本字段,我在其中输入密码。 谁能告诉我如何检查我输入的文本是否包含一个大写字母? 我已经浏览过网络但未能得到我想要的东西。提前致谢。
这是我要添加签到的地方。
if([self.txtfldPw.text isEqualToString:@""] && [self.txtfldPw.text.length = ] && [self.txtfldEmail.text = ]) {
UIAlertView *pwAlrt = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Password Must Be Of Six Characters And One Of The Letters Should Be Caps" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
[pwAlrt show];
[self.btnLogin setEnabled:YES];
}
最佳答案
这里使用来自 UITextField
或任何其他来源的字符串来查找它是否包含任何大写
。
NSString *str = @"Apple";
//get all uppercase character set
NSCharacterSet *cset = [NSCharacterSet uppercaseLetterCharacterSet];
//Find range for uppercase letters
NSRange range = [str rangeOfCharacterFromSet:cset];
//check it conatins or not
if (range.location == NSNotFound) {
NSLog(@"not any capital");
} else {
NSLog(@"has one capital");
}
编辑 根据您的要求: 1. 最少 6 个字符。 2. 其中至少有一个是上限。所以 Nirmal Choudhari
的正则表达式可以与以下方法一起使用来检查其是否有效
- (BOOL)containsValidPassword:(NSString*)strText
{
NSString* const pattern = @"^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z]).*$";
NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];
NSRange range = NSMakeRange(0, [strText length]);
return [regex numberOfMatchesInString:strText options:0 range:range] > 0;
}
用法:
NSString *str = @"appLe";
BOOL isValid = [self containsValidPassword:str];
if (isValid) {
NSLog(@"valid");
} else {
NSLog(@"not valid");
}
关于ios - 如何检测一个 NSString 是否包含一个大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690221/