几种正则的表达
来源:互联网 发布:柏林战役 知乎 编辑:程序博客网 时间:2024/05/16 12:48
首先简单介绍一下正则表达式的基本写法及用法
\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
- 几种正则的表达
- 正则表达的使用
- 正则表达的使用
- 常用的正则表达
- 经常用到的正则表达
- 常用的正则表达试锦集
- 常用的正则表达示
- XML的“正则”表达:Xpath
- 转载别人的正则表达
- 正则表达常用的方法
- 正则表达式子的使用
- 正则表达:NSRegularExpression的用法
- 正则表达试的用法
- 字符串里的正则表达
- django的url 正则表达
- python 基本的正则表达
- 手机号的正则表达示
- 关于‘吃’的几种英语表达方法
- J2EE之servlet.service
- 几个门户站的IP查询接口
- 转 -- linux shell 数组
- 详解YUV数据格式
- UItextview 怎么实现placeholder属性
- 几种正则的表达
- MySQL随笔
- 测试之路2——对比XML文件1
- 数据持久化
- Android屏幕备选资源
- orcale数据恢复
- ZOJ 3396 Conference Call 最短路
- 面试题之交通灯管理系统
- MM01 BDC录屏实例