Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何检测NSString是否包含一个大写字母_Ios_Objective C_Nsstring - Fatal编程技术网

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

Ios 如何检测NSString是否包含一个大写字母,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我有一个输入密码的文本字段。 谁能告诉我如何检查我输入的文本是否包含一个大写字母? 我浏览过网络,但没能得到我想要的东西。提前谢谢 这是我想添加签入的地方 if([self.txtfldPw.text isEqualToString:@""] && [self.txtfldPw.text.length = ] && [self.txtfldEmail.text = ]) { UIAlertView *pwAlrt = [[UIAlertView alloc

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

这是我想添加签入的地方

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];
}
试试这个

NSString *s = @"This is a string";  
int count=0;  
BOOL isUppercase;
for (i = 0; i < [s length]; i++) {
    isUppercase= [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:i]];
   if (isUppercase)
      break;
}

isUppercase?NSLog("String contain uppercase letter"):NSLog("String does not contain uppercase letter")
NSString*s=@“这是一个字符串”;
整数计数=0;
BOOL是大写的;
对于(i=0;i<[s长度];i++){
isUppercase=[[NSCharacterSet uppercaseLetterCharacterSet]特征成员:[s characterAtIndex:i]];
if(大写)
打破
}
isUppercase?NSLog(“字符串包含大写字母”):NSLog(“字符串不包含大写字母”)

这里使用
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.其中至少有一个应该是大写的。因此,
nirmalchoudhari
的正则表达式可以与下面的方法一起使用来检查其有效性

- (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");
}

使用此选项确定字符串中是否有一个或多个大写字母:

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

BOOL containsUppercaseLetter = ![string isEqualToString:lowercaseString];

试试这个。它将检查两个密码验证。 1.密码必须包含一个大写字母和一个小字母。 2.不允许使用特殊字符

- (BOOL)isPasswordValid:(NSString *)password
{
    NSCharacterSet * characterSet = [NSCharacterSet uppercaseLetterCharacterSet] ;
    NSRange range = [password rangeOfCharacterFromSet:characterSet] ;
    if (range.location == NSNotFound) {
        return NO ;
    }
    characterSet = [NSCharacterSet lowercaseLetterCharacterSet] ;
    range = [password rangeOfCharacterFromSet:characterSet] ;
    if (range.location == NSNotFound) {
        return NO ;
    }

    characterSet = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"] ;
    for (NSUInteger i = 0; i < [password length]; ++i) {
        unichar uchar = [password characterAtIndex:i] ;
        if (![characterSet characterIsMember:uchar]) {
            return NO ;
        }
    }
    return YES ;
}
-(BOOL)isPasswordValid:(NSString*)密码
{
NSCharacterSet*characterSet=[NSCharacterSet大写字母characterSet];
NSRange range=[characterfromset:characterSet]的密码范围;
if(range.location==NSNotFound){
返回否;
}
characterSet=[NSCharacterSet小写字符集];
范围=[CharacterFromSet:characterSet]的密码范围;
if(range.location==NSNotFound){
返回否;
}
characterSet=[NSCharacterSet characterSetWithCharactersInString:@“ABCDEFGHIjklmnopQRStuVxyZabCDEFGHIjklmnopQRStuVxyZ0123456789”];
用于(i=0;i<[密码长度];++i){
unichar uchar=[密码字符索引:i];
if(![characterSet-CharacterizeMember:uchar]){
返回否;
}
}
返回YES;
}

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

添加方法

- (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;
}
使用此代码检查条件

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];
}
-(BOOL)passwordvarify:(NSString*)password//password//在此处传递密码。如果密码包含一个大写字母,则返回true,否则返回false。只需调用此方法并根据true和false评估密码
{
整数计数=0;
用于(int i=0;i<[密码长度];i++){
BOOL isUppercase=[[NSCharacterSet uppercaseLetterCharacterSet]CharacterMember:[密码字符索引:i]];
if(isUppercase==是)
{
计数++;
打破
}
}
如果(计数=1)
{
NSLog(@“密码有一个大写字母”);
返回true;
}
其他的
{
NSLog(@“密码没有大写字母”);
返回false;
}
}

至少有一个或确切的密码您可以简单地使用正则表达式至少一个大写字母。您能给出密码的所有要求吗。。ie的最小最大长度和所有,所以我可以与您共享正则表达式我想有两个签入-1。最少6个字符,2个字符。其中至少有一个应该是caps。我想在if语句中签入此项。我该怎么做呢?+1:我想说这是最丑陋的检查方式……这个问题的最好方式:DDude!这是什么“空白字符集”?这是一个错误。它显示了未声明标识符“whitespaceCharacterSet”的使用情况(这用于删除前导和尾随空白字符以满足最小长度要求
-(BOOL)passwordvarify:(NSString*)password // pass your password here it will return true if it contains one uppercase letter else false just call this method and evaluate your password on the basis of true and false
{

    int count=0;
    for (int i = 0; i < [password length]; i++) {
        BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[password characterAtIndex:i]];
        if (isUppercase == YES)
        {
            count++;
            break;

        }
    }
    if(count == 1)
    {
        NSLog(@"password have one uppercase letter");
        return true;
    }
    else
    {
        NSLog(@"password do not have uppercase letter");
        return false;

    }
}