首页 > 解决方案 > 搜索不区分大小写

问题描述

我有一些代码只搜索区分大小写。我尝试过 toUpperCase()/toLowerCase() 方法。

<script>
import json from './json/data.json';

export default {
  name: 'app',
  data(){
    return {
      search: '',
      blogs: json.slice(0,10),
    }
  },

computed: {
    filteredBlogs: function(){
      return this.blogs.filter((blog)=>{

        return blog.title.match(this.search) ||
               blog.lineId.match(this.search);


      });
    }
  }

}
</script>

有没有人知道搜索不区分大小写?

标签: javascriptvuejs2

解决方案


假设这this.search是一个字符串,当您将它传递给match它时,它会隐式转换为默认情况下区分大小写的 RegExp。

尝试使用提供不区分大小写this.search的选项显式创建正则表达式:"i"

computed: {
  filteredBlogs: function(){
    return this.blogs.filter((blog)=>{

      const regex = new RegExp(this.search, 'i')

      return blog.title.match(regex) ||
        blog.lineId.match(regex);
    });
  }
}

推荐阅读