正则表达式(一)
来源:互联网 发布:ubuntu输入密码后卡住 编辑:程序博客网 时间:2024/06/10 01:15
- 验证用户名
/** * 验证用户名 * 由字母、数字、_、-组成,不能以符号开始和结束 * 6~14 */ * (BOOL)checkInputUserName:(NSString *)text{ NSString *regular = @"^[a-zA-Z\\d][\\w-]{4,12}[0-9a-zA-Z]$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular]; return [predicate evaluateWithObject:text];}
- 验证密码
/** * 验证密码 * 由字母、数字、_、-、~、!、@、#、$、%、^、&、*、+、,、.、?组成 * 6~16 */ * (BOOL)checkInputPassword:(NSString *)text{ NSString *regular = @"^[\\w!@#$%^&*+?,.~\\-]{6,16}$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular]; return [predicate evaluateWithObject:text];}
- 只能输入汉字
/** * 只能输入汉字 */ * (BOOL)checkInputChinese:(NSString *)text{ NSString *regular = @"^[\u4e00-\u9fa5]*$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular]; return [predicate evaluateWithObject:text];}
- 只能输入字母
/** * 只能输入字母 */ * (BOOL)checkInputLetter:(NSString *)text{ NSString *regular = @"^[a-zA-Z]*$"; return [self check:regular text:text];}
- 只能输入数字
/** * 只能输入数字 */ * (BOOL)checkInputNumber:(NSString *)text{ NSString *regular = @"^[0-9]*$"; return [self check:regular text:text];}
- 手机号码
/** * 手机号码 *中国移动号段:134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188、1705、178 中国联通号段:130、131、132、145(145属于联通无线上网卡号段)、155、156、185、186 、176、1709、 中国电信号段:133 、153 、180 、181 、189、1700、177 */ * (BOOL)checkInputPhoneNumber:(NSString *)text{ NSString *YDRegular = @"^1((3[4-9]|5[0-27-9]|47|8[23478]|78)\\d{8}|705\\d{7})$"; NSString *LTRegular = @"^1((3[0-2]|45|5[56]|8[56]|76)[0-9]|709)\\d{7}$"; NSString *DXRegular = @"^1((33|53|8[019]|77)[0-9]|700)\\d{7}$"; return [self check:YDRegular text:text] || [self check:LTRegular text:text] || [self check:DXRegular text:text];}
- 身份证
/** * 身份证 */+ (BOOL)checkInputIdCard:(NSString *)text{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyyMMdd HH:mm:ss"]; NSString *time = [formatter stringFromDate:[NSDate date]]; time = [time substringToIndex:8]; NSString *newText = [text substringWithRange:NSMakeRange(6, 8)]; if ([newText integerValue] > [time integerValue]) { return NO; } if (text.length != 18) { return NO; } BOOL isIdCard; NSString *regular = @"^[1-9]\\d{5}(19[0-9]{2}|201[0-6])(0[1-9]|1[0-2])([0|1|2]\\d|(3[0-1]))(\\d{4}|\\d{3}[Xx])$"; if ([self check:regular text:text] && text.length == 18) { NSArray *idCardWi = @[@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2"]; NSArray *idCardY = @[@"1",@"0",@"10",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2"]; NSInteger num = 0; for (NSInteger index = 0; index < text.length - 1; index++) { num += [[text substringWithRange:NSMakeRange(index, 1)] integerValue] * [idCardWi[index] integerValue]; } num = num % 11; if ([[text substringFromIndex:text.length - 1] isEqualToString:idCardY[num]]) { isIdCard = YES; }else{ isIdCard = NO; } }else{ isIdCard = NO; } return isIdCard;}
- 座机号码
/* * 座机号码 */ * (BOOL)checkInputLandLine:(NSString *)text{ NSString *regular = @"^0\\d{2}(\\-\\d|\\d\\-)\\d{7}$"; return [self check:regular text:text];}
- 邮箱
/* * 邮箱 */ * (BOOL)checkInputEmail:(NSString *)text{ NSString *regular = @"^[a-z0-9][a-z0-9_]{2,14}[a-z0-9]@[a-z0-9]+\\.(com|cn)$"; return [self check:regular text:text];}
- 以上方法通用此方法
+ (BOOL)check:(NSString *)regular text:(NSString *)text{ NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regular]; return [predicate evaluateWithObject:text];}
0 0
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式一字符
- 正则表达式使用指南一
- 常用正则表达式一
- 正则表达式学习一
- 正则表达式(一)
- 正则表达式解析一
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式规则(一)
- 正则表达式学习一
- 正则表达式(一)
- Python正则表达式(一)
- 正则表达式学习(一)
- 正则表达式(一)
- Java正则表达式一
- TFS 2015 敏捷开发实践 – 看板的使用
- 手把手教你解析Resources.arsc
- sphinx 排序
- 链表面试题之约瑟夫环问题
- Python开发环境部署
- 正则表达式(一)
- Android开发中通用的流行框架
- [代码实例][Linux系统编程]判断相对路径或绝对路径
- Android学习记录(二十五)-记录一下Android cursor onPause中close的异常。
- 分支结构 项目2-三数最大值 并排序显示
- JEECG再创新举,开辟云应用开发新时代,打造jeecg企业级云应用生态圈
- HierarchyViewer中的viewNode获取与解析方式
- 一个Struts2小案例的一般执行流程
- JFinal的ActiveRecord插件常用方法