iOS开发nbsp一些常用的正则表达

正则表达式.JPG

什么是正则表达式?

正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。

正则表达式的语法:

iOS中正则表达式与NSPredicate连用,看一个过滤纯数字的例子:

-(BOOL)checkNumber:(NSString*)number{NSString*number=

^[0-9]+$;NSPredicate*numberPre=[NSPredicatepredicateWithFormat:

SELFMATCHES%

,number];return[numberPreevaluateWithObject:textString];}

其中下述语句就是一个正则表达式:

^[0-9]+$

封装的CheckDataTool类:.h文件

////CheckDataTool.h//RegularExpression////CreatedbyLiChengon16/6/12.//Copyright?年Li_Cheng.Allrightsreserved.//#importFoundation/Foundation.h

interfaceCheckDataTool:NSObject/***邮箱验证**

paramemail邮箱**

returnYES:正确NO:失败*/+(BOOL)checkForEmail:(NSString*)email;/***手机号验证**

paramphone手机号**

returnYES:正确NO:失败*/+(BOOL)checkForMobilePhoneNo:(NSString*)mobilePhone;/***电话号验证**

paramphone电话号**

return结果*/+(BOOL)checkForPhoneNo:(NSString*)phone;/***身份证号验证(15位或18位)**

paramidCard身份证号**

returnYES:正确NO:失败*/+(BOOL)checkForIdCard:(NSString*)idCard;/***密码验证**

paramshortest最短长度*

paramlongest最长长度*

parampwd密码**

return结果*/+(BOOL)checkForPasswordWithShortest:(NSString*)shortestlongest:(NSString*)longestpassword:(NSString*)pwd;/***由数字和26个英文字母组成的字符串**

paramidCard数据**

return结果*/+(BOOL)checkForNumberAndCase:(NSString*)data;/***校验只能输入26位小写字母**

param数据**

return结果*/+(BOOL)checkForLowerCase:(NSString*)data;/***校验只能输入26位大写字母**

paramdata数据**

return结果*/+(BOOL)checkForUpperCase:(NSString*)data;/***校验只能输入由26个小写英文字母组成的字符串**

paramdata字符串**

return结果*/+(BOOL)checkForLowerAndUpperCase:(NSString*)data;/***是否含有特殊字符(%’,;=?$\等)**

paramdata数据**

return结果*/+(BOOL)checkForSpecialChar:(NSString*)data;/***校验只能输入数字**

paramnumber数字**

return结果*/+(BOOL)checkForNumber:(NSString*)number;/***校验只能输入n位的数字**

paramlengthn位*

paramnumber数字**

return结果*/+(BOOL)checkForNumberWithLength:(NSString*)lengthnumber:(NSString*)number;

end

.m文件

////CheckDataTool.m//RegularExpression////CreatedbyLiChengon16/6/12.//Copyright?年Li_Cheng.Allrightsreserved.//#importCheckDataTool.h

implementationCheckDataTool#pragmamark-邮箱校验+(BOOL)checkForEmail:(NSString*)email{NSString*regEx=

[A-Z0-9a-z._%+-]+

[A-Za-z0-9.-]+\\.[A-Za-z]{2,4};return[selfbaseCheckForRegEx:regExdata:email];}#pragmamark-验证手机号+(BOOL)checkForMobilePhoneNo:(NSString*)mobilePhone{NSString*regEx=

^1[3

4

5

7

8][0-9]\\d{8}$;return[selfbaseCheckForRegEx:regExdata:mobilePhone];}#pragmamark-验证电话号+(BOOL)checkForPhoneNo:(NSString*)phone{NSString*regEx=

^(\\d{3,4}-)\\d{7,8}$;return[selfbaseCheckForRegEx:regExdata:phone];}#pragmamark-身份证号验证+(BOOL)checkForIdCard:(NSString*)idCard{NSString*regEx=

(^[0-9]{15}$)

([0-9]{17}([0-9]

X)$);return[selfbaseCheckForRegEx:regExdata:idCard];}#pragmamark-密码校验+(BOOL)checkForPasswordWithShortest:(NSInteger)shortestlongest:(NSInteger)longestpassword:(NSString*)pwd{NSString*regEx=[NSStringstringWithFormat:

^[a-zA-Z0-9]{%ld,%ld}+$,shortest,longest];return[selfbaseCheckForRegEx:regExdata:pwd];}//----------------------------------------------------------------------#pragmamark-由数字和26个英文字母组成的字符串+(BOOL)checkForNumberAndCase:(NSString*)data{NSString*regEx=

^[A-Za-z0-9]+$;return[selfbaseCheckForRegEx:regExdata:data];}#pragmamark-小写字母+(BOOL)checkForLowerCase:(NSString*)data{NSString*regEx=

^[a-z]+$;return[selfbaseCheckForRegEx:regExdata:data];}#pragmamark-大写字母+(BOOL)checkForUpperCase:(NSString*)data{NSString*regEx=

^[A-Z]+$;return[selfbaseCheckForRegEx:regExdata:data];}#pragmamark-26位英文字母+(BOOL)checkForLowerAndUpperCase:(NSString*)data{NSString*regEx=

^[A-Za-z]+$;return[selfbaseCheckForRegEx:regExdata:data];}#pragmamark-特殊字符+(BOOL)checkForSpecialChar:(NSString*)data{NSString*regEx=

[^%,;=?$\x22]+;return[selfbaseCheckForRegEx:regExdata:data];}#pragmamark-只能输入数字+(BOOL)checkForNumber:(NSString*)number{NSString*regEx=

^[0-9]*$;return[selfbaseCheckForRegEx:regExdata:number];}#pragmamark-校验只能输入n位的数字+(BOOL)checkForNumberWithLength:(NSString*)lengthnumber:(NSString*)number{NSString*regEx=[NSStringstringWithFormat:

^\\d{%

}$,length];return[selfbaseCheckForRegEx:regExdata:number];}#pragmamark-私有方法/***基本的验证方法**

paramregEx校验格式*

paramdata要校验的数据**

returnYES:成功NO:失败*/+(BOOL)baseCheckForRegEx:(NSString*)regExdata:(NSString*)data{NSPredicate*card=[NSPredicatepredicateWithFormat:

SELFMATCHES%

,regEx];if(([cardevaluateWithObject:data])){returnYES;}returnNO;}

end







































白癜风治疗最好医院
白癜风早期症状



转载请注明:http://www.nylrzx365.com/jbjj/1113.html