Javascript 为什么我的搜索功能只在错过第一个字符时匹配?
为了满足特定的需求,我使用jQuery从头开始编写了一个搜索函数。它从的中搜索数据,如果与文本框中的字符串不匹配,则隐藏 我遇到的问题是,它会识别字符串,但不会识别第一个字符。它也是区分大小写的,这不是我想要包含的功能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
//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.