0

Underscoreを使用してフルテキスト検索を行う文字列の配列をどのようにフィルタリングしますか?Underscore.jsを使用して大文字と小文字を区別しない配列フィルタリング

文字列内の任意の数の文字にマッチするフィルタを意味します。

この関数はオートコンプリート機能に役立ちます。 たとえば、完全な名前の配列で、ミドルネームまたはラストネームを検索します。

答えて

1

最初に、likeアンダースコアmixinを作成します。この関数は、正規表現を使って文字列を比較します(正規表現の特殊文字をエスケープする必要があります)。

_.mixin({ 

    like: function(text, likeExpr) { 
    var regex = new RegExp(text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'i'); 
    return regex.test(likeExpr); 
    } 

}); 

次のようにこれを使用することができます。

_.like('whatever', 'Something something WhaTEvEr something.'); // true 

その後、あなたは配列をフィルタリングするために、この機能を使用することができますが:

_.filter(array, function(text) { 
    return _.like('string to match', text); 
}); 
+0

おかげで、@Alvaroは、あなたが本当にアップ投票に値します。 – CrazyGeek

関連する問題