关于正则表达式,百度百科中是这样说的
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本.
在iOS开发中我们经常用来检测输入框中输入的字符是否符合我们规定的格式,比如我们需要用户在一个输入框中输入一个手机号,只有正确的手机号才可以触发我们的方法,在没有用正则表达式的时候我们可能需要写很多代码来判断它的格式,但是正则表达式为我们带来了更加简便的方法
例如 我们要判断一个手机号码格式是否正确可以这样写
- (IBAction)phoneButton:(UIButton *)sender {
if ([self.field.text isPhoneNumber]) {
NSLog(@"是手机号码格式");
}else {
NSLog(@"不是手机号码格式");
}
}
上面的代码中 isPhoneNumber是我自己封装的一个方法,它的内部实现是这样的
/**
* 判断字符串格式是否为手机号
*/
-(BOOL)isPhoneNumber{
return [self getIsMatches:@"^1[3|4|5|7|8][0-9]\\d{8}$"];
}
/**
* 判断方法
*
* @param Regex 判断标准
*/
-(BOOL)getIsMatches:(NSString *)Regex{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",Regex];
return [predicate evaluateWithObject:self];
}
^1[3|4|5|7|8][0-9]\d{8}$ 代表了第一位必须是数字1,第二位可以为3、4、5、7、8、任何一位 之后必须为8位0-9之间的数字
关于正则表达式的具体规范和常用方法可以参照这篇文章正则表达式在iOS中的运用;
具体的代码可以下载RegexDemo;