iPhone中密码的正则表达式

时间:2011-04-01 13:49:31

标签: iphone regex passwords

我在创建正则表达式方面非常弱。所以我在这里。

我需要一个满足以下条件的正则表达式。

  1. 密码
  2. 应至少提供一个数字值和Atleast一个字母
  3. 最少6个字符最多允许32个字符。
  4. 谢谢

5 个答案:

答案 0 :(得分:18)

 -(BOOL) isPasswordValid:(NSString *)pwd {
     if ( [pwd length]<6 || [pwd length]>32 ) return NO;  // too long or too short
     NSRange rang;
     rang = [pwd rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
     if ( !rang.length ) return NO;  // no letter
     rang = [pwd rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]];
     if ( !rang.length )  return NO;  // no number;
     return YES;
 }

这显然不是一个正则表达式,但imo正则表达式对此非常有用。

答案 1 :(得分:10)

试试这个:

^(?=.*\d)(?=.*[A-Za-z]).{6,32}$

答案 2 :(得分:2)

不使用任何第三方库,如Regexkit,您可以检查您的要求,如下所示:

    if ([[password rangeOfCharacterFromSet: [ NSCharacterSet alphanumericCharacterSet]] &&
         [password rangeOfCharacterFromSet: [NSCharacterSet characterSetWithCharactersInString: @"0123456789"]] && 
        (6 < [password length]) && [password length] < 32)) {
              NSLog(@"acceptable password");
        }

答案 3 :(得分:1)

Here你可以找到一个有用的正则表达备忘单,它也提供了一些例子。 其中一个与您的需求非常相似(“样本模式框”中的第6个:)

答案 4 :(得分:1)

以下内容应符合最小/最大字符数,至少1个字母和1个数字字符要求:

^(?=.{6,32}$)(?=.*\d)(?=.*[a-zA-Z]).*$