美文网首页
关于手机号,邮箱号的正则表达式

关于手机号,邮箱号的正则表达式

作者: 这位网友 | 来源:发表于2016-09-12 10:30 被阅读63次

目前的App,除了第三方登录外,常用的登录方式就是手机号和邮箱帐号登录。

至于帐号的注册,验证码的发送,都是返回给后台之后由后台来完成的,这里不做说明。

文章的最后还会对文本框的输入判断进行一些说明,配合使用。


手机号判断
if (mobile.length == 11) {
            // 移动号段正则表达式
            NSString * CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
            // 联通号段正则表达式
            NSString * CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
            // 电信号段正则表达式
            NSString * CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";
            
            NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
            BOOL isMatch1 = [pred1 evaluateWithObject:mobile];
            NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
            BOOL isMatch2 = [pred2 evaluateWithObject:mobile];
            NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
            BOOL isMatch3 = [pred3 evaluateWithObject:mobile];
            
            if (isMatch1 || isMatch2 || isMatch3) {
                isPhone = YES;
            } else {
                [LDCreateUITool showMaskOfTitle:@"请输入正确的手机号/邮箱"];
            }
        }else{

        }
邮箱判断
if ([mobile containsString:@"@"]) {
        NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
        NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",  emailRegex];
        BOOL isEmail = [emailTest evaluateWithObject:mobile];
        
        if (isEmail) {
            isEmail = YES;
        } else {
            isEmail = NO;
        }
    } 

由于是同一个文本框去判断的,所以才用有没有"@"来区分邮箱和手机号。

这里还要做一些说明,那就是关于文本框的输入判断。
一般来说,为了用户体验我们都是调用文本框的代理方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

来进行实时的监控,或者用

-(void)textFieldDidEndEditing:(UITextField *)textField;

来等文本框失去焦点后判断,不过一般不用这个方法。

由于我们的程序中这两种方法使用起来都有点问题,所以改用通知的方法,其实这个通知的名字也是系统的

// 注册通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(phoneTextFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.phoneNumField];
// 这个通知里边的name,我们可以点击进去看,是UITextField.h里边系统自己的

// 1.帐号框的监听
- (void)phoneTextFiledEditChanged:(NSNotification *)notification
{
    if (notification.object != self.phoneField) {
        return;
    }
}

以上。

相关文章

  • 常用正则表达式

    校验支付宝账号支付宝账号分为个人账号和企业账号 个人账号可以是邮箱和手机号 企业账号只能是邮箱 手机号正则表达式:...

  • iOS 正则表达式判断手机号,邮箱等

    iOS正则表达式判断手机号,邮箱等 #import "NSString+RegexCategory.h" @imp...

  • 正则表达式的基本语法

    1. 正则表达式 最基本的使用场景:例如在一些注册账号的时候需要填邮箱、手机号的时候,正则表达式可以判断在填手机号...

  • ios 密码 邮箱 IP地址 手机号正则

    前言: 检测密码 邮箱 IP地址 手机号输入是否正确 已经封装好了,拖入工程就可以使用! //邮箱正则表达式 + ...

  • js正则表达式简单应用

    关于正则表达式,我也是最近才开始学,以前虽然也用到一些正则,不过大多是关于验证,比如验证手机号,邮箱,身份证等等。...

  • 常用的正则表达式

    常用的正则表达式: 1. 手机号格式:/^[0-9]{11}$/ 2. 邮箱格式: /^[A-Za-z\d]+([...

  • 正则表达式验证账号、手机号、电话和邮箱

    正则表达式验证账号、手机号、电话和邮箱 varre=/^[a-zA-z]\w{3,15}$/; 验证帐号是否合法 ...

  • 关于手机号,邮箱号的正则表达式

    目前的App,除了第三方登录外,常用的登录方式就是手机号和邮箱帐号登录。 至于帐号的注册,验证码的发送,都是返回给...

  • 2018-05-06

    一些用到的正则表达式 手机号:0|86|17951)?([1][3-9][0-9]{9})$/ 邮箱:/^[a-z...

  • 一些常用类收集

    1.android.util.Patterns里面有一些常用的正则表达式 包括 手机号 邮箱 URL 等 感觉比较实用

网友评论

      本文标题:关于手机号,邮箱号的正则表达式

      本文链接:https://www.haomeiwen.com/subject/gprpettx.html