Asp.net mvc 4 使用contains而不是stringStartsWith knockout js

Asp.net mvc 4 使用contains而不是stringStartsWith knockout js,asp.net-mvc-4,knockout.js,Asp.net Mvc 4,Knockout.js,我在我的模型上有一个标志: self.filteredItems = ko.computed(function () { var filter = this.filter().toLowerCase(); if (!filter) { return this.sites(); } else { return ko.utils.arrayFilter(this.

我在我的模型上有一个标志:

self.filteredItems = ko.computed(function () {
            var filter = this.filter().toLowerCase();

            if (!filter) {
                return this.sites();
            } else {
                return ko.utils.arrayFilter(this.sites(), function (item) {
                    return ko.utils.stringStartsWith(item.Name().toLowerCase(), filter);
                });
            }

        }, self);
我使用它在我的页面上进行搜索,但不使用stringStartsWith,我希望使用某种.contains,这样我就可以在搜索词包含在字符串中的任何位置而不仅仅是在开头得到结果

我想这一定是一个很常见的要求,但找不到任何明显的东西

有什么建议吗?

您可以简单地使用来检查“字符串包含”:

可能重复的,因为答案与字符串函数有关,而不是敲除或ASP.NET
self.filteredItems = ko.computed(function () {
    var filter = this.filter().toLowerCase();

    if (!filter) {
        return this.sites();
    } else {
        return ko.utils.arrayFilter(this.sites(), function (item) {
            return item.Name().toLowerCase().indexOf(filter) !== -1;
        });
    }

}, self);