开发小计之判断输入字符串类型(正则表达式)

#pragma mark - 正则表达式

- (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}$";

/**

10         * 中国移动:China Mobile

11         * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188

12         */

NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";

/**

15         * 中国联通:China Unicom

16         * 130,131,132,152,155,156,185,186

17         */

NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$";

/**

20         * 中国电信:China Telecom

21         * 133,1349,153,180,189

22         */

NSString * CT = @"^1((33|53|8[09])[0-9]|349)\\d{7}$";

/**

25         * 大陆地区固话及小灵通

26         * 区号:010,020,021,022,023,024,025,027,028,029

27         * 号码:七位或八位

28         */

// NSString * PHS = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";

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 = @"\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";

NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];

return [emailTest evaluateWithObject:email];

}

//判断qq号码

-(BOOL)isValidateQq:(NSString *)qqNum

{

NSString *qqRegex = @"[1-9][0-9]{4,}";

NSPredicate *qqTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", qqRegex];

return [qqTest evaluateWithObject:qqNum];

}

- (BOOL)isPureInt:(NSString*)string{

NSScanner* scan = [NSScanner scannerWithString:string];

int val;

return[scan scanInt:&val] && [scan isAtEnd];

}

- (BOOL)isPureFloat:(NSString*)string{

NSScanner* scan = [NSScanner scannerWithString:string];

float val;

return[scan scanFloat:&val] && [scan isAtEnd];

}

时间: 2024-11-01 00:24:30

开发小计之判断输入字符串类型(正则表达式)的相关文章

华为OJ:2199 判断输入字符串中的括号匹配

根据不同的括号有个计数器,在遍历时,当计数器小于0则返回false或者当遍历完后,计数器仍旧不为零,也返回false. import java.util.Scanner; public class bracketsMatch { public static void main(String args[]){ Scanner input=new Scanner(System.in); String s=input.nextLine(); int a=0; int b=0; int c=0; for

js判断输入字符串长度(汉字算两个字符,字母数字算一个):例如 要求输入12的字,24个字节

<html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie7 .pbt .ftid a { margin-top: 1px; } .cl:after { clear: both; content: ".&quo

给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]&#39;的字符串,判断输入字符串是否有效

public class Bracket { public static void main(String[] args) { String str = "[()]"; System.out.println(isValid(str)); } // [()] public static boolean isValid(String str) { Stack<Character> stack = new Stack<>(); Map<Character, Ch

Delphi For Android 开发笔记 2 NEXTGEN下的字符串类型

delphi开发速度迅捷至少有30%(猜的,呵呵)的原因是因为其字符串(string.WideString.PChar.PAnsiChar等)处理能力. 而从delphi XE4开始,在system等单元中,出现了一个叫 NEXTGEN 的编译条件,这条件是在进行移动开发时自动定义的,而传统桌面开发时没有定义NEXTGEN. 这个编译条件直接导致原来的PAnsiChar.AnsiString无法使用(传统桌面开发没有影响),只要稍微接触深入,即可发现,其实并不是无法使用,字符串类型新增了如下定义

Python判断输入字符类型

1 """从键盘上输入 一个字符,判断其字符类型.""" 2 while True: 3 char = input("请输入需要判断的字符:") 4 if str.isdigit(char) == True: 5 print("该字符为数字") 6 try: 7 char = int(char) 8 print("并且该数值类型为int") 9 except: 10 pass 11 12

开发小计(3)

2015/12/21-----------------------------------------------------------------------------------        装了一天的weblogic和j2sdk,java1.4哎.        每次都不能将需要的项目部署到weblogic中,jsp文件都进不去,全是class文件进去了.        其他自己建立的新项目就可以,很奇怪.        MyEclipse启动也有错误,动不动就报JVm错误,莫名其妙

我为什么要造一个轮子——GNova开发小计

GNova最初叫做CSystem,是作为系统库来设计的. 我最初学习C++是在大学时期的专业课,学生时代也曾用C++写过一些算法,但项目和比赛一般是用C#和Java完成的.工作之后,由于项目需要,我们的业务平台需要使用C++进行编写.在当时,我总是认为C++的标准库SL不如Java的lang包和.Net的System库好用,再加上当时接触到了Qt的Core模块,以及项目合作单位自己的基础库封装,于是我渐渐萌生了编写一套属于自己的好用的基础库的想法,CSystem也就应运而生. 现在看来,当时的想

开发小计(2)

2015\11\11-----------------------------------------------------------------------------------------                 9:16 注释了销售出库扫描单号的222--227行,                ........................124行                ........................106行            10:38  

开发小计(1)

2015\11\11----------------------------------------------------------------------------------------        15:03    完成了昨天的供应链全部导出的问题                                1.仍然遗留的改进是将页面上显示的供应商与物料的代码与名称分开                  在数据库里面存的是代码,但是在页面上最好把代码和名称一起显示