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

Tir*_*ndu 4 objective-c nsstring ios

我有一个textField,我输入密码.任何人都可以告诉我如何检查我输入的文本是否包含一个大写字母?我已经通过网络但未能得到我想要的东西.提前致谢.

这是我想添加签到的地方.

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];
}
Run Code Online (Sandbox Code Playgroud)

Par*_*iya 13

在这里使用您的字符串UITextField或任何其他来源,以查找它包含任何uppercase或不包含.

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");
}
Run Code Online (Sandbox Code Playgroud)

编辑根据您的要求: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;
}
Run Code Online (Sandbox Code Playgroud)

用法:

NSString *str = @"appLe";
BOOL isValid = [self containsValidPassword:str];
if (isValid) {
    NSLog(@"valid");
} else {
    NSLog(@"not valid");
}
Run Code Online (Sandbox Code Playgroud)


Nir*_*ari 6

只需使用以下代码验证您的密码即可.

添加方法

- (BOOL)isValidPassword:(NSString*)password
{
    NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern:@"^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z]).*$" options:0 error:nil];
    return [regex numberOfMatchesInString:password options:0 range:NSMakeRange(0, [password length])] > 0;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码检查条件.

if(![self isValidPassword:[password stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]]) {
    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];
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*mer 5

使用它来确定字符串中是否还有一个或多个大写字母:

 NSString *string = @"Test";
NSString *lowercaseString = [string lowercaseString];

BOOL containsUppercaseLetter = ![string isEqualToString:lowercaseString];
Run Code Online (Sandbox Code Playgroud)

  • + ONE:*我会说这是最好的****丑陋****检查方式......* (7认同)