首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一“技”之长

    30分钟摸透iOS中谓词NSPredicate的来龙去脉

    NSPredicate提供的谓词可以分为两类:比较谓词和复合谓词。 比较谓词:比较谓词通过使用比较运算符来描述所符合条件的属性状态。 二、NSPredicate类的应用解析     NSPredicate提供创建谓词对象和解析谓词对象的方法,它也是Cocoa中有关谓词的类中的基类。 NSPredicate提供了如下函数来进行初始化: //通过格式化字符串来进行谓词对象的初始化 + (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat 有一个小细节需要注意,在进行格式化时,如果使用的是变量则不需要添加引号,解析器会帮助你添加,如果使用到常量,则要用转义字符进行转义,例如: NSPredicate * predicate = [NSPredicate *)predicateWithValue:(BOOL)value; //自定义实现检索函数 /* 例如前面的示例也可以这样写 NSPredicate * predicate = [NSPredicate

    2K20发布于 2018-08-15
  • 来自专栏iOS逆向与安全

    iOS小技能:NSPredicate在正则表达式的应用

    NSString *attributeName = @"firstName"; NSString *attributeValue = @"siting"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@", attributeName, attributeValue]; 1.2 Basic In Objective-C, you could create a BETWEEN predicate as shown in the following example: NSPredicate * [a-zA-Z]+$)[a-zA-Z0-9]{6,16}"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES NSPredicate * predicate1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^(([1-9]{1}[0-9]

    1.2K20编辑于 2022-08-22
  • 来自专栏阿林前端开发攻城狮

    iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证

    [A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex 手机号以13, 15,18开头,八个 \d 数字字符 NSString phoneRegex = @"^((13[0-9])|(15[^4,\D])|(18[0,0-9]))\d{8}$"; NSPredicate NSString carRegex = @"^[\u4e00-\u9fa5]{1}[a-zA-Z]{1}[a-zA-Z_0-9]{4}[a-zA-Z0-9\u4e00-\u9fa5]$"; NSPredicate *carTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",carRegex]; NSLog(@"carTest is %@",carTest *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex]; BOOL B =

    70910发布于 2021-10-29
  • 来自专栏xx_Cc的学习总结专栏

    iOS-谓词的使用详解import typedef NS_ENUM(NSInteger, PersonSex) {

    一、NSPredicate基本语句 只要我们使用谓词(NSPredicate)都需要为谓词定义谓词表达式,而这个表达式必须是一个返回BOOL的值。 谓词表达式由表达式、运算符和值构成。 1.比较运算符 比较运算符如下 =、==:判断两个表达式是否相等,在谓词中=和==是相同的意思都是判断,而不是赋值 NSNumber *testNumber = @123; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF = 123"]; if ([predicate evaluateWithObject:testNumber NSArray *testArray = @[@1, @2, @3, @4, @5, @6]; NSPredicate *predicate = [NSPredicate predicateWithFormat *predTemp = [NSPredicate predicateWithFormat:@"%K > $VALUE", @"age"]; // 指定$VALUE的值为 25 NSPredicate

    1.9K50发布于 2018-05-10
  • 来自专栏Alice

    ios 常用的正则表达式(手机号邮箱md5加密验证空字符串等)

    .m文件 /* 验证相关 */ //1.是否是手机号 - (BOOL)isMobileNumber{ NSString * MOBILE = @"^1[3-9]\\d{9}$"; NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE]; if ([regextestmobile +[a-zA-Z]{2,}$"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex [a-zA-Z]+$)[0-9A-Za-z]{8,14}$"; NSPredicate *pwdTest = [NSPredicate predicateWithFormat:@"SELF MATCHES

    1.3K100发布于 2018-02-01
  • 来自专栏iOS逆向与安全

    iOS小技能:提取数字(文本框对粘贴内容进行手机号码提取)

    + (BOOL)checkEmployeeNumber: (NSString *) number { NSString *pattern = @"^[0-9]{11}"; NSPredicate * predicate0 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^[0][0-9]+$"]; //匹配两位小数、整数 NSPredicate * predicate1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^(([1-9]{1}[0-9] YES : NO; } 2.2 支付密码/短信验证码 + (BOOL)isPWDChangeCharactersInRange:(NSString*)str{ NSPredicate * predicate0 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",@"^[0-9]{0,6}$"]; return [predicate0

    1.6K50编辑于 2022-08-22
  • 来自专栏日常技术分享

    Objective-C 数组筛选

    下面介绍一个更简便的方法来实现 简介 NSPredicate类主要用来指定过滤器的条件,该对象可以准确的描述所需条件,对每个对象通过谓词进行筛选,判断是否与条件相匹配。 一般的, NSPredicate的筛选过滤的条件可以是, 逻辑运算符号(> , < , =),范围运算符(IN,BETWEEN),字符的包含/匹配/模糊搜索(BEGINSWITH,ENDSWITH,CONTAINS NSPredicate用法 1.创建NSPredicate NSPredicate *predicate = [NSPredicate predicateWithFormat:@"过滤条件"]; *inputPredicate=[NSPredicate predicateWithFormat:condition,value]; NSMutableArray *newMutableArray *inputPredicate=[NSPredicate predicateWithFormat:@"%K like[cd] %@",key, [NSString stringWithFormat:@

    1.8K10发布于 2018-09-13
  • 来自专栏编程之旅

    iOS开发——正则表达式验证手机号、密码

    前文中的name组 实例分析 匹配用户手机号 根据上面的语法,我用OC语言写出来的正则表达式匹配手机号的代码如下: NSString *pattern = @"^1+[3578]+\\d{9}"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern]; BOOL isMatch = [pred evaluateWithObject [a-zA-Z]+$)[a-zA-Z0-9]{6,18}"; NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES checkUserName : (NSString *) userName { NSString *pattern = @"^[a-zA-Z\u4E00-\u9FA5]{1,20}"; NSPredicate + (BOOL)checkEmployeeNumber : (NSString *) number { NSString *pattern = @"^[0-9]{12}"; NSPredicate

    3.5K20发布于 2018-08-30
  • 来自专栏進无尽的文章

    编码篇 - 正则表达式及其相关

    文章脉络 谓词(NSPredicate) Predicate(谓语)的意思。NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF = 123"]; if ([predicate evaluateWithObject NSArray *testArray = @[@1, @2, @3, @4, @5, @6]; NSPredicate *predicate = [NSPredicate predicateWithFormat = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate *regextestcu = [NSPredicate \\w+)*"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strRegex];

    1.4K20发布于 2018-09-12
  • 来自专栏mukekeheart的iOS之旅

    OC学习14——谓词

    一、谓词的基本概念与使用 1、谓词(NSPredicate)用于定义一个逻辑条件,通过该条件可执行搜索或内存中的过滤操作。上一篇文章中介绍的集合都提供了使用谓词对集合进行过滤的方法。 2、创建谓词之后,如果谓词中没有占位符,则可以直接使用NSPredicate的evaluateWithObject:方法计算谓词的结果,该结果总是一个BOOL值; 1 #import <Foundation * pred = [NSPredicate predicateWithFormat: 9 @"name like 's*'"]; 10 FKUser* user1 集合,返回集合中符合谓词条件的元素组成新集合   NSMutableArray提供了如下方法使用谓词来过滤集合: -(void)filteredUsingPredicate:(NSPredicate * * pred2 = [NSPredicate predicateWithFormat: 33 @"name CONTAINS '大王'"]; 34 //

    1.5K100发布于 2018-02-27
  • 来自专栏iOS开发随笔

    iOS常用的正则表达式(持续更新)

    [a-zA-Z]+$)[a-zA-Z0-9]{6,16}"; NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES ; return isMatch; } + (BOOL)checkMoneyValue:(NSString*)money { NSString* pattern =@"^[1-9][0-9]*$"; NSPredicate [A-Za-z]{2,4}"; NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@",pattern]; + (BOOL)checkIDCard:(NSString*)idCard { NSString* pattern =@"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)"; NSPredicate ; NSPredicate* predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern]; BOOL isMatch

    61230发布于 2018-06-28
  • 来自专栏码农的生活

    IOS校验验证手机号,信用卡号,电话号码,邮编,Email等

    [A-Za-z]{2,4}"; NSPredicate emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE]; // NSPredicate regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate regextestcu = [NSPredicate :@"SELF MATCHES %@", CT]; // NSPredicate regextestphs = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS]; // NSPredicate regextestphs1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS1

    89500发布于 2021-10-31
  • 来自专栏iOS逆向与安全

    iOS小技能:参数名ASCII码从小到大排序、对象数组排序

    引言 利用KVC的 valueForKeyPath API、谓词的NSPredicate、数组的sortedArrayUsingComparator:API进行实现。 contentString); return contentString; } II 数组排序 2.1 对象数组按照日期重新分组 使用谓词进行数据分组 (数组元素为 自定义类型) iOS NSPredicate nil; // 4)按照日期进行分组 for (NSString *strDateCreated in arSorted) { predicate = [NSPredicate // 4)按照日期进行分组 for (NSString *strDateCreated in arSorted) { NSPredicate * predicate = [NSPredicate predicateWithFormat:@"createTime == %@", strDateCreated];

    2.2K10编辑于 2022-08-22
  • 来自专栏全栈程序员必看

    iOS 邮箱正则表达式[通俗易懂]

    [A-Za-z]{2,4}”; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@”SELF MATCHES %@”, emailRegex [A-Za-z]{2,4}”; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@”SELF MATCHES %@”, emailRegex

    1K40编辑于 2022-09-12
  • 来自专栏编程之旅

    iOS开发——大大节省代码量的小技巧

    133,153,180,181,189,177,1700 */ NSString *CT = @"(^1(33|53|77|8[019])\d{8}$)|(^1700\d{7}$)"; NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE]; NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU]; NSPredicate *regextestct = [NSPredicate predicateWithFormat [A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex

    60840发布于 2018-08-30
  • 来自专栏iOS开发攻城狮的集散地

    iOS CoreData (一) 增删改查

    *pre = [NSPredicate predicateWithFormat:@"age < %d", 10]; deleRequest.predicate = pre; / //创建查询请求 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; NSPredicate *pre = [NSPredicate predicateWithFormat:@"sex = %@", @"帅哥"]; request.predicate = pre; / NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; //查询条件 NSPredicate *pre = [NSPredicate predicateWithFormat:@"sex = %@", @"美女"]; request.predicate = pre; // 从第几页开始显示

    1.8K70发布于 2018-05-22
  • 来自专栏一“技”之长

    iOS开发之EventKit框架的应用

    error; // 通过identifier获取事件 - (nullable EKEvent *)eventWithIdentifier:(NSString *)identifier; // 使用给定的NSPredicate 进行事件查询 - (NSArray<EKEvent *> *)eventsMatchingPredicate:(NSPredicate *)predicate; // 使用给定的NSPredicate进行事件枚举 - (void)enumerateEventsMatchingPredicate:(NSPredicate *)predicate usingBlock:(EKEventSearchCallback) block; // 构造NSPredicate查询对象 - (NSPredicate *)predicateForEventsWithStartDate:(NSDate *)startDate endDate 对象 @property(nonatomic, readonly) NSPredicate *contactPredicate; (adsbygoogle = window.adsbygoogle

    4.7K51发布于 2019-07-01
  • 来自专栏移动端周边技术扩展

    iOS中正则表达式的三种使用方式

    正则语法努力学习中 一:使用NSPredicate(谓词)匹配 NSString *mail = @"zhangrongwuios@icloud.com"; NSString *regex = [A-Za-z]{2,4}"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex

    72850发布于 2018-06-12
  • 来自专栏iOS开发攻城狮的集散地

    iOS CoreData (一) 增删改查

    *pre = [NSPredicate predicateWithFormat:@"age < %d", 10]; deleRequest.predicate = pre; / //创建查询请求 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; NSPredicate *pre = [NSPredicate predicateWithFormat:@"sex = %@", @"帅哥"]; request.predicate = pre; / NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"]; //查询条件 NSPredicate *pre = [NSPredicate predicateWithFormat:@"sex = %@", @"美女"]; request.predicate = pre; // 从第几页开始显示

    1.6K80发布于 2018-05-22
  • 来自专栏css小迷妹

    iOS判断字符串是否为合法邮箱地址

    [A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex

    98320发布于 2021-10-29
领券