iOS正则表达式
来源:互联网 发布:mac系统恢复被删除 编辑:程序博客网 时间:2024/06/16 07:06
首先简单介绍一下正则表达式的基本写法及用法
\d 匹配任何一个数字,即[0-9]
\d+表示1个以上的数字
\d*标示0个或多个数字
\s 表示分隔符,包括空格、制表符和换行符
\s* 0个或多个分隔符
\w 表示字母、数字和下划线,这里还包括Unicode字符,不同的语言里有些不同
\w{4} 表示4个非空白字符
. 表示任何一个字符,不包括换行符
.* 表示任何多个字符,当然也不包括换行符了
^([0-9]) 表示数字开头
([0-9])$ 表示数字结尾
([0-9A-Za-z]) 表示数字字母
| 表示或的关系,如\d|\w 表示数字或字母
(.|[\r\n])* 表示任何多个字符,包括换行符,贪婪扫描
(.|[\r\n])*? 表示任何多个字符,包括换行符,懒惰扫描
(?:.|[\\r\\n]) 以(?:开头时的分组信息,表示不读取到缓冲器里,避免rangeAtIndex调用时产生副作用,后面还会遇到这样的(?:写法
下面将自己写的一些通用的正则表达式函数罗列一下,以后后续参考
@implementation TSRegularExpressionUtil//邮箱+ (BOOL) validateEmail:(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];}//手机号码验证+ (BOOL) validateMobile:(NSString *)mobile{ //手机号以13, 15,18开头,八个 \d 数字字符 NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex]; return [phoneTest evaluateWithObject:mobile];}//车牌号验证+ (BOOL) validateCarNo:(NSString *)carNo{ NSString *carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z_0-9_\u4e00-\u9fa5]$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex]; NSLog(@"carTest is %@",carTest); return [carTest evaluateWithObject:carNo];}//车型+ (BOOL) validateCarType:(NSString *)CarType{ NSString *CarTypeRegex = @"^[\u4E00-\u9FFF]+$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CarTypeRegex]; return [carTest evaluateWithObject:CarType];}//用户名+ (BOOL) validateUserName:(NSString *)name{ NSString *userNameRegex = @"^[A-Za-z0-9]{4,20}+$"; NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex]; BOOL B = [userNamePredicate evaluateWithObject:name]; return B;}//密码+ (BOOL) validatePassword:(NSString *)passWord{ NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$"; NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex]; return [passWordPredicate evaluateWithObject:passWord];}//昵称+ (BOOL) validateNickname:(NSString *)nickname{ NSString *nicknameRegex = @"([\u4e00-\u9fa5]{2,5})(·[\u4e00-\u9fa5]{2,5})*"; NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex]; return [passWordPredicate evaluateWithObject:nickname];}//身份证号+ (BOOL) validateIdentityCard: (NSString *)identityCard{ BOOL flag; if (identityCard.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$"; NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [identityCardPredicate evaluateWithObject:identityCard];}//银行卡+ (BOOL) validateBankCardNumber: (NSString *)bankCardNumber{ BOOL flag; if (bankCardNumber.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{15,30})"; NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [bankCardPredicate evaluateWithObject:bankCardNumber];}//银行卡后四位+ (BOOL) validateBankCardLastNumber: (NSString *)bankCardNumber{ BOOL flag; if (bankCardNumber.length != 4) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{4})"; NSPredicate *bankCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [bankCardPredicate evaluateWithObject:bankCardNumber];}//CVN+ (BOOL) validateCVNCode: (NSString *)cvnCode{ BOOL flag; if (cvnCode.length <= 0) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{3})"; NSPredicate *cvnCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [cvnCodePredicate evaluateWithObject:cvnCode];}//month+ (BOOL) validateMonth: (NSString *)month{ BOOL flag; if (!month.length == 2) { flag = NO; return flag; } NSString *regex2 = @"(^(0)([0-9])$)|(^(1)([0-2])$)"; NSPredicate *monthPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [monthPredicate evaluateWithObject:month];}//month+ (BOOL) validateYear: (NSString *)year{ BOOL flag; if (!year.length == 2) { flag = NO; return flag; } NSString *regex2 = @"^([1-3])([0-9])$"; NSPredicate *yearPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [yearPredicate evaluateWithObject:year];}//verifyCode+ (BOOL) validateVerifyCode: (NSString *)verifyCode{ BOOL flag; if (!verifyCode.length == 6) { flag = NO; return flag; } NSString *regex2 = @"^(\\d{6})"; NSPredicate *verifyCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2]; return [verifyCodePredicate evaluateWithObject:verifyCode];}@end
0 0
- ios 正则表达式
- IOS正则表达式
- IOS正则表达式
- ios使用正则表达式
- IOS 正则表达式
- iOS正则表达式
- ios 正则表达式
- IOS-常用正则表达式
- ios之正则表达式
- iOS 正则表达式
- ios 正则表达式
- ios电话号码正则表达式
- iOS 正则表达式验证
- ios 正则表达式
- ios电子邮件正则表达式
- ios 使用正则表达式
- iOS 正则表达式
- iOS使用正则表达式
- adb 启动Activity,service和发送broadcast
- Spring学习笔记--组合式基于XML配置metaData
- 从研究生到程序员
- 零起步学习 电源知识及技术
- hdu 3035 War(平面图最小割)
- iOS正则表达式
- 字典树(Tries)
- 在Yii中使用Captcha验证码
- Android Studio加入jar包后无法加入工程
- JAVA深复制(深克隆)与浅复制(浅克隆)
- Typecho插件-相关阅读TEReadMore
- Java 编程的动态性,第 1 部分: 类和类装入
- WPF动态切换皮肤
- Serializable