我正在尝试构建实时搜索项目,但我不确定我的代码有什么问题。如果我搜索“AAA - AAA”结果显示但是当我搜索“TOF0042 - 文本更新+调整大小”时,结果不会显示。
你能帮帮我吗?
<input type="text" id="search-project" name="search-project"> <ul class="list-porject"> <li>AAA - AAA</li> <li>BBB - BBB</li> <li>0546 - Testing</li> <li>TOF0042 - text update + resize</li> </ul>
(函数($){
$(document).ready(function() { $("#search-project").keyup(function(){ var filter = $(this).val(); $(".list-porject li").each(function(){ if ($(this).text().search(new RegExp(filter, "i")) < 0) { $(this).addClass('hidden'); } else { $(this).removeClass('hidden'); } });
}); })})(jQuery的);
.hidden {display:none; }
演示:Fiddle
答案 0 :(得分:4)
在“TOF0042 - 文本更新+调整大小”中,您有字符“+”,这是正则表达式中的量词。
要搜索“TOF0042 - 文本更新+调整大小”,您需要检查字符串中的特殊字符。在这种情况下,+
应为\+
。
How to escape special characters using regular expressions
More info about Javascript regular expressions
工作demo