不管是网页是手机,用户注册登录的时候绝大数时候都需要手机号码和邮箱地址,而且有些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._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *emailTest =
[NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:email];
}

  

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

  1. 微信小程序 --- 表单输入验证(手机号、邮箱验证、输入非空)

    js代码 Page({                   /**    * 页面的初始数据    */         data: {         indicatorDots: false,   ...

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

    1,验证是否为汉字 // 验证昵称 private boolean verifyNickname() { String nickname = edt_username.getText().toStri ...

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

    1.//当用户全部清空的时候的时候 会调用 -(BOOL)textFieldShouldClear:(UITextField *)textField: 2.//可以得到用户输入的字符 -(BOOL)t ...

  4. iOS开发判断手机号及其运营商

    根据三大运营商出现的号段(号段来自百度百科) 判断是否是手机号 + (BOOL)isMobile:(NSString *)str { NSString *MOBILE = @"^1(3[0- ...

  5. iOS 开发之路(登陆验证调用WebService)二

    swift3.0下使用Alamofire调用Webservice遇到的一些问题以及解决方案. 首先是针对没有证书的https下的接口处理问题(ps:不推荐在正式版本中使用),manager.reque ...

  6. iOS开发正则表达式的学习

    正则表达式笔记 每天的一小步,知道我在不断进步,这就是我每天的小目标. 这是我的第一篇博客,在工作之余,我会努力地留下些许脚印. 我是一名iOS开发者,对于iOS我仅仅只是一个菜鸟,愿意在此处留下我的 ...

  7. IOS开发中怎样验证邮箱的合法性

    IOS开发中怎样验证邮箱的合法性 文章参考:http://www.codes51.com/article/detail_94157.html 代码: - (void)viewDidLoad { [su ...

  8. iOS邮箱、手机号等常用验证功能 判断字符串是否int float

    手机号验证 /* 手机号码 13[0-9],14[5|7|9],15[0-3],15[5-9],17[0|1|3|5|6|8],18[0-9] 移动:134[0-8],13[5-9],147,15[0 ...

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

    在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色. ...

随机推荐

  1. PMK数据生成工具airolib-ng

    PMK数据生成工具airolib-ng   PMK(Pairwise Master Key)是根据ESSID和无线密钥生成的哈希值,用于WPA/WPA2身份认证.在WPA/WPA2暴力破解中,需要大量 ...

  2. SQL Server密码爆破工具SQLdict

    SQL Server密码爆破工具SQLdict SQL Server是Windows系统常用的数据库服务器.它广泛采用用户名和密码方式,进行身份认证.Kali Linux提供一款专用的数据库密码爆破工 ...

  3. 试图(View)

    试图是通过命名约定与动作方法想关联的.这个动作方法称为Index,控制器名称为Home; 添加试图,试图名与该试图相关联的动作方法的名称一致.

  4. 【BZOJ-4261】建设游乐场 最大费用最大流

    4261: 建设游乐场 Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 21  Solved: 8[Submit][Status][Discuss] D ...

  5. java自动给版本升级,遇9变0且前面一个版本加1

    /** * 自动升级版本号,版本号+1 * @param version * @return */ private String autoUpgradeVersion(String version){ ...

  6. tomcat开启SSL8443端口的方法

    参考文献: http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html http://blog.sina.com.cn/s/blog_682b5aa1 ...

  7. 【Go命令教程】12. go tool pprof

    我们可以使用 go tool pprof 命令来交互式的访问概要文件的内容.命令将会分析指定的概要文件,并会根据我们的要求为我们提供高可读性的输出信息. 在 Go 语言中,我们可以通过标准库的代码包 ...

  8. 【Android基础篇】TabWidget设置背景和字体

    在使用TabHost实现底部导航栏时,底部导航栏的三个导航button无法在布局文件中进行定制.比方设置点击时的颜色.字体的大小及颜色等,这里提供了一个解决的方法.就是在代码里进行定制. 思路是在Ac ...

  9. linux后台开发核心技术

    3. 常用STL的使用 3.1. string (1)string类的实现(使用strlen.strcpy.strcat.strcmp等,注意判NULL). (2)C++字符串和C字符串的转换:dat ...

  10. .NET轻量级ORM组件Dapper修炼手册

    一.摘要 1.1.为什么叫本次的分享课叫<修炼手册>? 阿笨希望本次的分享课中涉及覆盖的一些小技巧.小技能给您带来一些帮助.希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需 ...