正则限制 账号 密码 邮箱 身份证 手机号的相关代码

本文介绍如何使用正则表达式验证用户输入的电话号码、用户名、邮箱和手机号等信息,确保信息的有效性和格式正确。
#import <Foundation/Foundation.h>

int main() {
    // ? == {0,1}
    // * == {0,无穷}
    // + == {1,无穷}
    // \d == [0-9]
    // \w == [A-Za-z_0-9]
    // * 的意思是可有可无
    // [a|b|c]+   表示三个至少出现一次或多次
    //检测电话号码是否正确
    NSString *tel = @"";
    //正则表达式
    NSString *regex = @"^\\d*$";
//    NSString *regex = @"^[0-9]{3,4}-[0-9]{7,8}$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",regex];//创建需要满足上面的正则表达式的谓词
    NSLog(@"该电话号码:%d",[predicate evaluateWithObject:tel]);
    
    
    //用户名 (第一位必须是字母,6-16位,只能有字母,数字或下划线)
    NSString *user = @"m54355";
    NSString *regex1 = @"^[A-Za-z]\\w{5,15}$";
    NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",regex1];
//    NSLog(@"该电话号码:%d",[predicate1 evaluateWithObject:user]);
//   //身份证
//    NSString *user1 = @"610125199301300814";
//    NSString *regex2 = @"^\\d{17}[\\dxX]$";
//    NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",regex2];
//    NSLog(@"该身份证:%d",[predicate2 evaluateWithObject:user1]);
    //邮箱
    NSString *mailbox = @"101707383@qq.com";
    NSString *regex3 = @"^[a-zA-Z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$";
    NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",regex3];
//    NSLog(@"该邮箱:%d",[predicate3 evaluateWithObject:mailbox]);
    //手机号
//    NSString *phone = @"18709259205";
//    NSString *regex4 = @"^1[3|4|5|7|8]\\d{9}$";
//    NSPredicate *predicate4 = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",regex4];
//    NSLog(@"该手机:%d",[predicate4 evaluateWithObject:phone]);
    if ([predicate1 evaluateWithObject:user] == 1) {
        if ([predicate3 evaluateWithObject:mailbox] == 1) {
            NSLog(@"登录成功");
        }
    }else{
            NSLog(@"错误");
    }
    return 0;
}


转载于:https://my.oschina.net/u/2499339/blog/606842

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值