正则表达式判断手机号码和电话号码的方法:

 #import <Foundation/Foundation.h>
/**
正则判断手机号码地址格式
*/
BOOL isMobileNumber(NSString *mobileNum) {
/**
* 手机号码
* 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
* 联通:130,131,132,152,155,156,185,186
* 电信:133,1349,153,180,189
*/
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,157,158,159,182,187,188
*/
NSString *CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\d)\d{7}$";
/**
* 中国联通:China Unicom
* 130,131,132,152,155,156,185,186
*/
NSString *CU = @"^1(3[0-2]|5[256]|8[56])\d{8}$";
/**
* 中国电信:China Telecom
* 133,1349,153,180,189
*/
NSString *CT = @"^1((33|53|8[09])[0-9]|349)\d{7}$";
/**
* 大陆地区固话及小灵通
* 区号:010,020,021,022,023,024,025,027,028,029
* 号码:七位或八位
*/
// NSString *PHS = @"^0(10|2[0-5789]|\d{3})\d{7,8}$"; NSPredicate *regexMOBILE = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
NSPredicate *regexCM = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
NSPredicate *regexCU = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];
NSPredicate *regexCT = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT]; BOOL isValid = [regexMOBILE evaluateWithObject:mobileNum]
|| [regexCM evaluateWithObject:mobileNum]
|| [regexCU evaluateWithObject:mobileNum]
|| [regexCT evaluateWithObject:mobileNum];
return isValid;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *mobileNumber = @"";
BOOL isValid = isMobileNumber(mobileNumber);
NSLog(@"%@是否是有效的手机号码?%@", mobileNumber, isValid ? @"是":@"否"); //是 mobileNumber = @"135234244ik";
isValid = isMobileNumber(mobileNumber);
NSLog(@"%@是否是有效的手机号码?%@", mobileNumber, isValid ? @"是":@"否"); //否 mobileNumber = @"";
isValid = isMobileNumber(mobileNumber);
NSLog(@"%@是否是有效的手机号码?%@", mobileNumber, isValid ? @"是":@"否"); //否
}
return ;
}

正则表达式判断姓名(只允许包含中文或英文字母,10个字符以内)的方法:

 + (BOOL)isValidateName:(NSString *)name {
NSString *nameRegex = @"^[\u4E00-\u9FA5A-Za-z]{1,10}";
NSPredicate *namePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegex];
return [namePredicate evaluateWithObject:name];
}

Objective-C语法之NSPredicate的使用的更多相关文章

  1. 初学Objective - C语法之代码块(block)

    一.block声明 1.无参数,无返回值: void (^sayHi)(); 2.有参数,有返回值: NSInteger (^operateOfValue)(NSInteger num); block ...

  2. [转] 从 C 到 Objective C 入门1

    转自: http://blog.liuhongwei.cn/iphone/objective-c/ 进军iPhone开发,最大的难点之一就是怪异的Objective C语法了.不过,了解之后才发现,原 ...

  3. IOS开发之--NSPredicate

    我把常用的NSPredicate使用场景整理了一下   官方参考: https://developer.apple.com/library/mac/#documentation/Cocoa/Refer ...

  4. iOS开发——语法篇OC篇&高级语法精讲二

    Objective高级语法精讲二 Objective-C是基于C语言加入了面向对象特性和消息转发机制的动态语言,这意味着它不仅需要一个编译器,还需要Runtime系统来动态创建类和对象,进行消息发送和 ...

  5. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  6. ios学习笔记之2天来总结

    学了2天,小结下. ios的基本代码执行流程: 与java的基本异同: 异: 1.基类:java中Object是所有类的父类,而objective-c的根类为NSObject 2.默认访问类型:jav ...

  7. Pentaho BI server 中 CCC table Component 的使用小技巧

    我使用的版本 Pentaho BI Server 5.3.0.0.213 CDE/CDF/CDA/CCC 15.04.16 stable   Q: 如何设置表格中各种提示文字的语言(默认为英语)? C ...

  8. iOS正則表達式(一)

    什么是正則表達式? 正則表達式是对字符串操作的一种逻辑公式. 作用? 在iOS开发中我们通常使用正則表達式来匹配给定的字符串是否符合我们的业务逻辑,比方说用户注冊帐号仅仅能是手机号或者邮箱等.我们还能 ...

  9. OC中protocol、category和继承的关系--转

    开放封闭原则(OCP)就是,“对扩展开放,对更改封闭”.是所有面向对象设计的一个核心宗旨.感兴趣的可以看百度百科的一些解释:http://baike.baidu.com/view/2493421.ht ...

随机推荐

  1. vs2010密钥

    vs2010密钥 YCFHQ-9DWCY-DKV88-T2TMH-G7BHP

  2. PHP只显示姓名首尾字符,隐藏中间字符并用*替换

    //测试时文件的编码方式要是UTF8 $str='中文a字1符'; echo strlen($str).'<br>';//14 echo mb_strlen($str,'utf8').'& ...

  3. MYSQL优化9大法!

    通常网站的性能瓶颈在数据库查询,如果你希望你的网站在一定阶段之内保持稳定,优化你的SQL和数据库是非常必要的一个优化环节.优化数据库是一个很大的话题,这里只是摘要一些比较关键的优化参考建议,并且需要具 ...

  4. linux下nc的使用

    发送端:cat test.txt | nc -l -p 6666或者nc -l  -p 6666 < test.txt                    有些版本不要在 -p[监听6666端 ...

  5. [leetcode]Minimum Depth of Binary Tree--二叉树层序遍历的应用

    题目: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the ...

  6. 【oneday_onepage】——美国主食吃什么

    Cocktail 鸡尾酒 It is quite usual to drink cocktails before lunch and dinner in America and somewhat le ...

  7. 彻底去除Win10“快速访问”

    windows10的“快速访问”功能对于我个人用处不大,作为一个爱折腾的人决定尝试彻底除去“快速访问”这个侧边栏. 注意:此操作需要确保你已经设置了[让点击Win10任务栏“文件资源管理器”图标打开“ ...

  8. 实现JTextfield 的右键 复制、剪切、粘贴功能。

    http://leagion.iteye.com/blog/572730 ——————————————————————————————————————————————————————————————— ...

  9. 微信SDK 报错 invalid url domanin

    刚开始我在安全JS域名下填写: Http://hgj123.8.yydns.pw   带了Http 在微信中开打自己写好demo.报invalid url domanin 说我的无效URL. 然后我在 ...

  10. fresco中设置占位/加载失败的图片 无效

    在xml中设置  placeholderImage  属性无效.代码如下: <com.facebook.drawee.view.SimpleDraweeView android:id=" ...