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

时间:2013-03-26 09:57:27

标签: javascript jquery search

我使用jQuery从头开始编写搜索功能,以满足特定需求。它会搜索来自<span>的{​​{1}}的数据,如果它与文本框中的字符串不匹配,则会隐藏<div>

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

<div>

JSFiddle Here

2 个答案:

答案 0 :(得分:5)

问题是你的if语句忽略了第一个字符,因为第一个字符是索引0。

if (currentAuthor.search(searchBox1) > 0)

应该是:

if (currentAuthor.search(searchBox1) >= 0)

如果您的区分大小写,则需要应用toUpperCase()toLowerCase()

if (currentAuthor.ToUpperCase().search(searchBox1.toUpperCase()) >= 0)

答案 1 :(得分:2)

  

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

你的问题就在这里:

if (currentAuthor.search(searchBox1) > 0)

JS中的String.search为您提供第一场比赛的位置。如果这是您文本的开头,则为0

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