正则表达式 -- 手机号、字母、数字、密码混合判断

手机号、字母、数字、密码混合判断,正则表达式,你需要吗?

验证字母 ^[a-zA-Z]*$

// 正则
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[a-zA-Z]*$" options:NSRegularExpressionAnchorsMatchLines error:nil];

    NSUInteger numberOfMatches = [regex numberOfMatchesInString:[textField text] options:NSMatchingAnchored range:NSMakeRange(0, [[textField text] length])];

验证数字 ^[0-9]*$

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]*$" options:NSRegularExpressionAnchorsMatchLines error:nil];

    NSUInteger numberOfMatches = [regex numberOfMatchesInString:[textField text] options:NSMatchingAnchored range:NSMakeRange(0, [[textField text] length])];

验证手机号 ^((13)|(14)|(15)|(17)|(18))\d{9}$

// 验证手机号 - 正则表达式
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^((13)|(14)|(15)|(17)|(18))\\d{9}$" options:NSRegularExpressionAnchorsMatchLines error:nil];

    NSUInteger numberOfMatches = [regex numberOfMatchesInString:[textField text] options:NSMatchingAnchored range:NSMakeRange(0, [[textField text] length])];

    if (numberOfMatches == 0) {

        // 弹出提示框 - 显示提示信息
        [self alertViewController:@"您的手机号输入有误"];
    }else{
        NSLog(@"正确");
    }
    return numberOfMatches;

验证字母和数字混合 – 判断密码中要含有字母和数字混合的时侯可以使用,很方便,直接用就可以了

// 验证字母和数字混合 -- 密码
-(void)checkIsHaveNumAndLetter:(NSString*)password{
    //数字条件
    NSRegularExpression *tNumRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:NSRegularExpressionCaseInsensitive error:nil];

    //符合数字条件的有几个字节
    NSUInteger tNumMatchCount = [tNumRegularExpression numberOfMatchesInString:password
                                                                       options:NSMatchingReportProgress
                                                                         range:NSMakeRange(0, password.length)];

    //英文字条件
    NSRegularExpression *tLetterRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil];

    //符合英文字条件的有几个字节
    NSUInteger tLetterMatchCount = [tLetterRegularExpression numberOfMatchesInString:password options:NSMatchingReportProgress range:NSMakeRange(0, password.length)];

    if (tNumMatchCount == password.length) {
        //全部符合数字,表示沒有英文
        // 调用提示框的方法 - 将要显示的内容传到提示框上展示出来
        [self alertViewController:@"您输入的密码中不包含英文"];
        return;
    } else if (tLetterMatchCount == password.length) {
        //全部符合英文,表示沒有数字
        [self alertViewController:@"您输入的密码中不包含数字"];
        return;
    } else if (tNumMatchCount + tLetterMatchCount == password.length) {
        //符合英文和符合数字条件的相加等于密码长度
//        return;
    } else {
        [self alertViewController:@"您输入的密码中含有特殊符号"];
        return;
        //可能包含标点符号的情況,或是包含非英文的文字,这里再依照需求详细判断想呈现的错误
    }

}

写一个提示框的方法 - 便于重复调用

// 定义提示框方法
-(void)alertViewController:(NSString *)text
{
    // 创建提示框
    UIAlertController *alertCon = [UIAlertController alertControllerWithTitle:text message:@"" preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *action = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

    }];
    [alertCon addAction:action];
    [self presentViewController:alertCon animated:YES completion:nil];
}

猜你喜欢

转载自blog.csdn.net/YuanLiYin079/article/details/80023637