自定义javascript自动完成的重音折叠
Accent folding for a custom javascript autocomplete
我决定构建自己的javascript自动完成搜索,因为我有一个数组中超过120,000个元素的列表,并且非常简单的jQuery UI自动完成和jQuery自动完成只是没有为我工作。
它实际上被证明是非常简单的,到目前为止,对于一个包含80,000个元素的列表,它真的很快。无论如何,我迫切需要在我的自动补全中引入口音折叠功能,但我不知道该怎么做才能保持它的效率。
这是我的JS:
var arr = ["Wayne Réviér", "Wayne Röllo", "Wayne Rolls", "Wayne Grety", "Wayne Rüm", "Wayne Erry"]; //Example list.
var searchBox = document.getElementById('searchBox');
jQuery('#searchBox').on('input propertychange paste', function() {
$('div').html("");
var listCounter = 0;
setTimeout(function(){
if(searchBox.value.length >= 3) { //restrict to 3+ characters.
for (var i = 0; i < arr.length; i++) { //loop through array
if( listCounter <= 4) { //only show top 5 results.
searchBoxLower = searchBox.value.toLowerCase(); //make comparing easier
arrLower = arr[i].toLowerCase();
if(arrLower.indexOf(searchBoxLower) > -1) {
listCounter++; //result found. +1 counter.
$('div').append(arr[i]+"<br>");
}
}
}
}
}, 5);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="searchBox"/>
<div>
</div>
我怎么能在这里引入重音折叠呢?另外,如果你发现了什么可以提高效率的方法,我很乐意听到。谢谢!
我可能会对searchBoxLower进行RegExp测试。我现在不在家,无法测试代码,但我认为您可能会对本文感兴趣。
http://alistapart.com/article/accent-folding-for-auto-complete大多数时候,当我需要自动完成搜索时,我正在使用Ajax和数据库,如果我可以这样说,我将所有重音字符替换为原始形式。例如所有的éèêàâôö等等。"e","一个","o"。这使得搜索过程更容易,但它会给你更多的结果。
我希望这篇文章对你有帮助。
相关文章:
- 如何在小页面中移动折叠下方的渲染阻塞javascript
- 需要帮助调整 Fiddle 代码以使用 Javascript 和 CSS 折叠/展开 Div
- 在javascript中折叠属性值上的对象数组
- 阻止javascript关闭打开的折叠列表
- javascript的区域代码折叠
- 将元素属性与 javascript 折叠方法结合使用时,引导折叠无法正常工作
- JavaScript 可折叠表,没有 jQuery
- Vim,折叠Javascript大括号和括号
- 将多个 Javascript 事件折叠为单个事件
- eBay 和 Bootstrap:JavaScript 中的折叠菜单
- onbeforeunload JavaScript 函数不应该在树视图节点展开/折叠时调用 asp.net
- 使用 JavaScript 在 HTML 中展开/折叠列表
- (网页)JavaScript 可折叠菜单错误
- google pageSpeed Insights,javascript IS 在 WORDPRESS 折叠下方加载
- JavaScript 文件中的语法折叠在 Vim 中不起作用
- 展开/折叠-Javascript
- 如何切换/折叠javascript元素(我想在默认情况下折叠html)
- 菜单折叠javascript在IE8中不工作
- Eclipse中按区域折叠Javascript代码
- IDE扩展和折叠JavaScript代码块