Javascript 为什么我的搜索功能只在错过第一个字符时匹配?

Javascript 为什么我的搜索功能只在错过第一个字符时匹配?,javascript,jquery,search,Javascript,Jquery,Search,为了满足特定的需求,我使用jQuery从头开始编写了一个搜索函数。它从的中搜索数据,如果与文本框中的字符串不匹配,则隐藏 我遇到的问题是,它会识别字符串,但不会识别第一个字符。它也是区分大小写的,这不是我想要包含的功能 //Grab ID of current recordContainer var currentID = $(this).attr('id'); // Add hash tag so it can be used as an ID cal

为了满足特定的需求,我使用jQuery从头开始编写了一个搜索函数。它从的中搜索数据,如果与文本框中的字符串不匹配,则隐藏

我遇到的问题是,它会识别字符串,但不会识别第一个字符。它也是区分大小写的,这不是我想要包含的功能

 //Grab ID of current recordContainer
            var currentID = $(this).attr('id');
        // Add hash tag so it can be used as an ID call
            var currentID2 = ("#" + currentID);
        //Grab data from author span in current recordContainer
            var currentAuthor = $(this).children('span.listLeadAuthor').text();
        //If current author matches anything in the search box then keep it visible
            if (currentAuthor.search(searchBox1) > 0)
            {
                    $(currentID2).show();
                    count++;
            }
        //If search box is empty keep it visible
            else if (searchBox1 === "")
            {
                    $(currentID2).show();
            }
我遇到的问题是,它会识别字符串,但不会识别第一个字符

你的问题就在这里:

if (currentAuthor.search(searchBox1) > 0)
JS中的String.search可以获取第一个匹配的位置。如果文本开头的a是正确的,那么它是0

未找到匹配项的返回值不是0,而是-1

我遇到的问题是,它会识别字符串,但不会识别第一个字符

你的问题就在这里:

if (currentAuthor.search(searchBox1) > 0)
JS中的String.search可以获取第一个匹配的位置。如果文本开头的a是正确的,那么它是0


找不到匹配项的返回值不是0,而是-1。

问题在于if语句忽略了第一个字符,因为第一个字符位于索引0处

if (currentAuthor.search(searchBox1) > 0)
应该是:

if (currentAuthor.search(searchBox1) >= 0)
如果您需要区分大小写,则需要应用toupercase或toLowerCase


问题是if语句忽略了第一个字符,因为第一个字符位于索引0处

if (currentAuthor.search(searchBox1) > 0)
应该是:

if (currentAuthor.search(searchBox1) >= 0)
如果您需要区分大小写,则需要应用toupercase或toLowerCase


请复制并粘贴问题中的代码。currentAuthor.SearchBox1!==-1请复制并粘贴问题中的代码。currentAuthor.SearchBox1!==-1这很好,但它仍然区分大小写。如果currentAuthor.searchnew RegExpsearchBox1,i!==-1这很好,但它仍然区分大小写。如果currentAuthor.searchnew RegExpsearchBox1,i!==-1.