作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在处理这个过滤问题,我有大约 50-100 个列表项。每个项目都有这样的标记:
<li>
<input type="checkbox" name="services[]" value="service_id" />
<span class="name">Restaurant in NY</span>
<span class="filters"><!-- hidden area -->
<span class="city">@city: new york</span>
<span class="region">@reg: ny</span>
<span class="date">@start: 02/05/2012</span>
<span class="price">@price: 100</span>
</span>
</li>
我创建这样的标记是因为我最初使用 List.js .
我想要的是像这样进行搜索:@region: LA @price: 124
等等。问题是我还想显示多个项目,以便选择多个...一个 :)
我假设这需要模糊搜索,但问题是我没有找到任何功能。
由于我的元素数量很少,所以我想要一个客户端解决方案。
最佳答案
我一直在寻找 javascript 中的“模糊搜索”,但在这里找不到解决方案,所以我编写了自己的函数来满足我的需要。
算法非常简单:遍历针字母并检查它们是否以相同的顺序出现在大海捞针中:
String.prototype.fuzzy = function (s) {
var hay = this.toLowerCase(), i = 0, n = -1, l;
s = s.toLowerCase();
for (; l = s[i++] ;) if (!~(n = hay.indexOf(l, n + 1))) return false;
return true;
};
例如:
('a haystack with a needle').fuzzy('hay sucks'); // false
('a haystack with a needle').fuzzy('sack hand'); // true
关于JavaScript/列表.js : Implement a fuzzy search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206013/
我是一名优秀的程序员,十分优秀!