我的想法是有一个单词列表,其中有很多变音符号或重音符号。例如,而不是写Róse来Róse我想写 Rose 并在结果中有Róse 。 首先,我用Google搜索,here in StackOverflow问题得到了部分解决。
但如果我有这样的数组check jsFiddle:
,该怎么办? $scope.names = [{name: 'Jamón', surname: 'Géroux'},
{name: 'Andrés', surname: 'Guérin'},
{name: 'Cristián', surname: 'Róse'},
{name: 'Fernán', surname:'Raúlien'}];
};
然后解决方案不起作用:jsFiddle。 如果我有,例如,自定义过滤器突出显示:
<td ng-bind-html="name.name | highlight:search.$"></td>
我已经知道了,这里的所有例子https://builtwith.angularjs.org都有与变音符号/重音符号相同的问题。只有一个网站http://illicoweb.videotron.com使用“简单技术”和JavaScript函数以及str.replace。
关于真正简单快速解决方案的任何想法?没有存储带有变音/重音符号的两个表而没有它。
提前致谢!
答案 0 :(得分:4)
我已根据您对过滤器的修改更新了此JSFiddle。我只是简单地修改过滤器以搜索全名,而不仅仅是所示的第一个名称:
$scope.ignoreAccents = function(item) {
if (!$scope.search)
return true;
var fullName = item.name + ' ' + item.surname;
var text = removeAccents(fullName.toLowerCase());
var search = removeAccents($scope.search.toLowerCase());
return text.indexOf(search) > -1;
};
这种方法应该可以否定对两个单独表格的需求。