ios - 如何检测一个 NSString 是否包含一个大写字母

标签 ios objective-c nsstring

我有一个文本字段,我在其中输入密码。 谁能告诉我如何检查我输入的文本是否包含一个大写字母? 我已经浏览过网络但未能得到我想要的东西。提前致谢。

这是我要添加签到的地方。

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/

相关文章:

objective-c - NSTask NSPipe - objective c 命令行帮助

ios - SpriteKit 中的更新功能与 iPhone X 不同

ios - 如何在 iOS 上高效地使用 REST API 的值对象

iphone - 无法设置 View Controller 的委托(delegate)

iphone - 我应该使用哪些搜索和比较选项来搜索汉字?

iphone - 执行错误访问 NSString

ios - 如何更改 UITableViewController 导航栏的颜色?

ios - Mac 中 Ansible 的库在哪里

objective-c - 不同的 C++ include 语句在 Objective-C header 中抛出错误

ios - 为什么 NSNotificationCenter 发布会导致“无法识别的选择器发送到实例?”