语法/字符说明表
值表达
. 匹配除换行符外的任意字符
w 匹配字母或者数字的字符
W 匹配任意不是字母或数字的字符
s 匹配任意的空白符(空格、制表符、换行符)
S 匹配任意不是空白符的字符
d 匹配任意数字
D 匹配任意非数字的字符
匹配单词的结尾或者开头的字符
B 匹配任意不是单词结尾或开头的字符
[^x] 匹配任意非x的字符。如[^[a-z]]匹配非小写字母的任意字符
^ 匹配字符串的开头
$ 匹配字符串的结尾
修饰表达
* 匹配重复任意次数
+ 匹配重复一次以上的次数
? 匹配一次或零次
{n} 匹配重复n次
{n,} 匹配重复n次或n次以上
{n,m} 匹配重复最少n次最多m次
- (
BOOL
)isEmpty
{
return
self.text.length == 0;
}
- (
BOOL
)validateEmail
{
return
[self validateWithRegExp: @
"^[a-zA-Z0-9]{4,}@[a-z0-9A-Z]{2,}\.[a-zA-Z]{2,}$"
];
}
- (
BOOL
)validateAuthen
{
return
[self validateWithRegExp: @
"^\d{5,6}$"
];
}
- (
BOOL
)validatePassword
{
NSString * length = @
"^\w{6,18}$"
;
//长度
NSString * number = @
"^\w*\d+\w*$"
;
//数字
NSString * lower = @
"^\w*[a-z]+\w*$"
;
//小写字母
NSString * upper = @
"^\w*[A-Z]+\w*$"
;
//大写字母
return
[self validateWithRegExp: length] && [self validateWithRegExp: number] && [self validateWithRegExp: lower] && [self validateWithRegExp: upper];
}
- (
BOOL
)validatePhoneNumber
{
NSString * reg = @
"^1\d{10}$"
;
return
[self validateWithRegExp: reg];
}
- (
BOOL
)validateWithRegExp: (NSString *)regExp
{
NSPredicate * predicate = [NSPredicate predicateWithFormat: @
"SELF MATCHES %@"
, regExp];
return
[predicate evaluateWithObject: self.text];
}