Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Objective-C中使用NSPredicate获取jQuery自动完成结果_Javascript_Jquery_Ios_Autocomplete_Nspredicate - Fatal编程技术网

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

Javascript 在Objective-C中使用NSPredicate获取jQuery自动完成结果,javascript,jquery,ios,autocomplete,nspredicate,Javascript,Jquery,Ios,Autocomplete,Nspredicate,我有一段jquery代码,如下所示 var src = data.split(','); jQuery("#stationFrom").autocomplete({ source: function( request, response ) { var matcher = new RegExp( "\\b" + jQuery.ui.autocomplete.escapeRegex( request.term ), "i" );

我有一段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];

这似乎对我正在测试的字符串不起作用。我的数组包含字符串“德里(DLI)”,但当我传递术语字符串“DLI”时,该谓词与之不匹配,而上面的jquery与之匹配。@tbag:您能再试一次吗?我在模式中添加了另一个
*
。@tbag:不客气(jQuery似乎隐式地匹配字符串中的“anywhere”,但谓词不匹配,因此必须在模式的开头和结尾添加
*
。)