iOS开发-UITextField手机号和邮箱验证

不管是网页是手机,用户注册登录的时候绝大数时候都需要手机号码和邮箱地址,而且有些App会限制只能使用手机号注册,iOS方面邮箱正则比较简单,不过手机号码验证找了一下网上的,发现三大运营商的号码段有所变化,通过最新的号码段判断用户手机验证的时候出错概率会小,如果有遗漏的号码段,欢迎补充。

/*手机验证 */
+ (BOOL)isMobileNumber:(NSString *)mobileNum {
    /**
     * 手机号码
     * 移动:134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178
     * 联通:130/131/132/155/156/185/186/145/176
     * 电信:133/153/180/181/189/177
     */
    NSString *MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
    /**
     * 中国移动:China Mobile
     * 134[0-8]/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178
     */
    NSString *CM = @"^1(34[0-8]|(3[5-9]|5[0127-9]|8[23478]|47|78)\\d)\\d{7}$";
    /**
     * 中国联通:China Unicom
     * 130/131/132/152/155/156/185/186/145/176
     */
    NSString *CU = @"^1(3[0-2]|5[256]|8[56]|45|76)\\d{8}$";
    /**
     * 中国电信:China Telecom
     * 133/153/180/181/189/177
     */
    NSString *CT = @"^1((33|53|77|8[019])[0-9]|349)\\d{7}$";

    NSPredicate *regextestmobile =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    NSPredicate *regextestcm =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
    NSPredicate *regextestcu =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
    NSPredicate *regextestct =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];

    if (([regextestmobile evaluateWithObject:mobileNum] == YES) ||
        ([regextestcm evaluateWithObject:mobileNum] == YES) ||
        ([regextestct evaluateWithObject:mobileNum] == YES) ||
        ([regextestcu evaluateWithObject:mobileNum] == YES)) {
        return YES;
    } else {
        return NO;
    }
}

/*邮箱验证 */
+ (BOOL)isValidateEmail:(NSString *)email {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest =
    [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:email];
}

  

时间: 2024-10-11 19:26:57

iOS开发-UITextField手机号和邮箱验证的相关文章

Android中验证输入是否为汉字及手机号,邮箱验证,IP地址可用port号验证

1,验证是否为汉字 // 验证昵称 private boolean verifyNickname() { String nickname = edt_username.getText().toString(); if (nickname == null || nickname.length() == 0) { edt_username.setError("不能为空"); return false; } int len = 0; char[] nickchar = nickname.to

Android中验证输入是否为汉字及手机号,邮箱验证

1,验证是否为汉字 // 验证昵称 private boolean verifyNickname() { String nickname = edt_username.getText().toString(); if (nickname == null || nickname.length() == 0) { edt_username.setError("不能为空"); return false; } int len = 0; char[] nickchar = nickname.to

IOS开发-UITextField代理常用的方法总结

1.//当用户全部清空的时候的时候 会调用 -(BOOL)textFieldShouldClear:(UITextField *)textField: 2.//可以得到用户输入的字符 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string: 3.//已经开始编辑的时候 会触发这个方法— - (void)te

iOS 开发手机正则和邮箱正则

#pragma mark 判断手机号码格式是否正确 + (BOOL)valiMobile:(NSString *)mobileNum { /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 * 147,152,183,184 * 联通:130,131,132,152,155,156,185,186 * 166,175,176,145 * 电信:133,1349,153,180,189 */ NS

iOS开发--UITextField限制输入文字的个数

项目需要输入框的文字最多为4个,为了实现这个功能,在网上把资料翻遍了,没有一个能用的.后来不得不自己实现,折腾了好久,终于搞定了.小技巧分享给大家. 代码如下: static constNSInteger Max_Character_Num =4; - (IBAction)onTextFieldEditingChanged:(id)sender { NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; if

iOS开发正则表达式的学习

正则表达式笔记 每天的一小步,知道我在不断进步,这就是我每天的小目标. 这是我的第一篇博客,在工作之余,我会努力地留下些许脚印. 我是一名iOS开发者,对于iOS我仅仅只是一个菜鸟,愿意在此处留下我的经验来帮助更多的朋友一起学习,有任何疑问,都欢迎指点和批评. 这是一个正则表达式基础篇,并提供了目前比较常用的一些正则表达式格式. 1.什么是正则表达式 正则表达式提供了一种在指定模式中搜索匹配的模式,这种模式匹配能让你做更有用的事,如验证字段,电话号码,邮箱地址,检查用户输入,执行更高级的文本操作

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色

在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色.1:当你在使用Storyboard开发是,点击UITextField,在点击右上角的属性检测器,其实在这里面你是找不到有可以修改占位文字和光标颜色的属性的.2:那就进入UITextField的协议里面去查找,但是还是找不到,3:在进代理里面去查找,看看有没有通过代理方法,返回颜色并控制占位文字的方法

ios开发问题,经验证,textview的contentsize.height不能准确判断高度

IOS7环境中,设置UITextView.text并不能立即更新contentSize,再用textView.contentSize.height无法获取当前内容的高度.采用以下方法可以解决这个问题. 1 2 3 4 5 6 7 8 9 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {                  CGRect textFrame=[[self.textView layoutManager]u

正则验证手机号,邮箱,车牌

- (IBAction)button_Click:(id)sender { if ([self isValidateMobile:@"输入你要验证的手机号码"] == YES) { NSLog(@"手机号正确"); }else{ NSLog(@"手机号错误"); } if ([self isValidateEmail:@"输入你要验证的邮箱"] == YES) { NSLog(@"邮箱正确"); }else