gpt4 book ai didi

javascript - 在 Objective-C 中使用 NSPredicate 获取 jQuery 自动完成结果

转载 作者:行者123 更新时间:2023-11-28 22:07:33 24 4
gpt4 key购买 nike

你好,有一段 jquery 代码,如下所示

var src = data.split(',');
jQuery("#stationFrom").autocomplete({
source: function( request, response ) {
var matcher = new RegExp( "\\b" + jQuery.ui.autocomplete.escapeRegex( request.term ), "i" );
response( jQuery.grep( src, function( item ){
return matcher.test( item );
}) );
},

这基本上是自动完成文本字段。我正在尝试使用 NSPredicate 在 Objective-C 中模拟相同的内容。我试过的查询是

NSArray *filteredArray = [possibleTerms filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF contains[cd] %@", inputString]];
return filteredArray;

但是,这不会返回与上面的 jquery 自动完成脚本相同的结果。如何修复谓词查询以匹配 jQuery。

有更好的方法吗?

最佳答案

谓词中的“MATCHES”进行正则表达式匹配(“[c]”用于不区分大小写), 所以这应该类似于您的 jQuery 代码:

NSString *pattern = [NSString stringWithFormat:@".*\\b%@.*", [NSRegularExpression escapedPatternForString:term]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self MATCHES[c] %@", pattern];
NSArray *filteredArray = [possibleTerms filteredArrayUsingPredicate:predicate];

如果你想获取数组中所有以给定术语开头的字符串,你可以使用更简单的谓词

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self BEGINSWITH[c] %@", term];

关于javascript - 在 Objective-C 中使用 NSPredicate 获取 jQuery 自动完成结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23582873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com