0

我正在尝试制作一个自定义过滤器以仅获得完全匹配

如果我的搜索是歌剧但不是,我希望过滤器返回歌剧:

  • 歌剧
  • 手术
  • 希望

如何使用自定义过滤器的示例: https ://vuetifyjs.com/en/components/data-tables/#custom-filter

目前我有什么:

<v-data-table
        :headers="headers"
        :items="words"
        item-key="name"
        :search="search"
        :custom-filter="filterPerfectMatch"
      >
...
</v-data-table>

...

methods: {
    filterPerfectMatch(value, search) {
      return value != null &&
        search != null &&
        typeof value === 'string' &&
      //  value.match(search) === true &&  <== doesn't work T T
        value.toString().indexOf(search) !== -1
    },
},
4

2 回答 2

0

发现这很容易:

 filterPerfectMatch(value, search) {
      if (value == search) {
        console.log("value :" + value + ", search :" + search)
        return value != null &&
        search != null &&
        typeof value === 'string' &&
        value.toString().indexOf(search) !== -1
      }

      
    },
于 2021-01-05T17:17:12.607 回答
0

如果您想要完全匹配,请使用==or===进行字符串比较。无需使用indexOf.

methods: {
    filterPerfectMatch(value, search) {
      return value != null && value === search
    },
},

您还可以添加toLowercase()值和搜索,但您需要添加检查它们是否是字符串。

于 2021-01-05T17:18:07.783 回答