判断8-16位英文和数字组成密码

需求:8-16位 / 必须同时包含英文和数字

正则:^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$

  • (?![0-9]+$) 预测该位置后不全是数字
  • (?![a-zA-Z]+$) 预测该位置后面不全是字母
  • [0-9A-Za-z] {8,16} 由8-16位数字或这字母组成

判断方法如下:

- (BOOL)isStandardPassword {
    NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    return [pred evaluateWithObject:self];
}

如果需要同时包含大小写英文和数字:

regex = @"^(?![0-9]+$)(?![0-9A-Z]+$)(?![0-9a-z]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";

你可能感兴趣的:(判断8-16位英文和数字组成密码)