iOS开发:正则表达式

时间:2023-03-08 20:44:50

语法/字符说明表

值表达

.      匹配除换行符外的任意字符

\w   匹配字母或者数字的字符

\W   匹配任意不是字母或数字的字符

\s    匹配任意的空白符(空格、制表符、换行符)

\S    匹配任意不是空白符的字符

\d    匹配任意数字

\D    匹配任意非数字的字符

\b    匹配单词的结尾或者开头的字符

\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];
}