首页 > 代码库 > cocoa中的NSPredicate介绍
cocoa中的NSPredicate介绍
在COCOA中的NSPredicate表示的就是一种判断。一种条件的构建。我们可以先通过NSPredicate中的predicateWithFormat方法来生成一个NSPredicate对象表示一个条件,然后在别的对象中通过evaluateWithObject方法来进行判断,返回一个布尔值。
废话不多说,直接上代码:
- (BOOL)validatePhoneNumber{ // 手机号以13, 15,18开头,八个 \d 数字字符 NSString *phoneNumberRegEx = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNumberRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}
上面这段代码是判断手机号码是否正确。建立一个phoneNumberRegEx的字符串,根据predicateWithFormat:建立一个NSPredicate对象表示一个条件,再用valuateWithObject判断是否匹配.其中的lowercaseString是返回一个小写的字符串(具体见我字符串常用用法的博客)。
字符串中使用了很多iOS中的正则表达式(见我博客iOS常用正则表达式)。
iOS常用判断代码示例:
- (BOOL)validateUserName{ NSString *RegEx = @"^[\\d\\w_]{5,20}$"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", RegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}- (BOOL)validateUserNameNoChar{ NSString *phoneNumberRegEx = @"^[\\d_]{5,20}$"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNumberRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}- (BOOL)validatePhoneNumber{ // 手机号以13, 15,18开头,八个 \d 数字字符 NSString *phoneNumberRegEx = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNumberRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}- (BOOL)validateEmail{ NSString *mailRegEx = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", mailRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}- (BOOL)validateBlank{ NSString *priceRegEx =@"\\s*"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", priceRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}- (BOOL)validatePrice{ NSString *priceRegEx =@"\\d*|\\d*\\.|\\d*\\.\\d{1,2}"; NSPredicate *regExPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", priceRegEx]; BOOL isCorrect = [regExPredicate evaluateWithObject:[self lowercaseString]]; return isCorrect ? YES : NO;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。