当前位置: 首页 > 面试题库 >

angularjs搜索并忽略西班牙语字符

皇甫福
2023-03-14
问题内容

我在页面上添加了一个简单的排序。这个想法是搜索产品。这些产品是用西班牙语编写的,带有口音。例如:“Jamón”。

这是我的代码:

<div class="form-inline">
  <label>Search</label>
  <input type="text" ng-model="q"/>
</div>

<div ng-repeat="product in products_filtered = (category.products | filter:q | orderBy:'name')">
           ....
</div>

我唯一的问题是您必须输入“Jamón”才能找到产品“Jamón”。我想要的是更加灵活,如果用户键入“ Jamon”,则结果必须包含“Jamón”。

如何使用角度过滤器进行搜索而忘记重音符号?任何想法?

提前致谢。


问题答案:

您需要创建一个过滤器功能(或完整的过滤器)。这是可能可行的最简单的方法:

HTML

<div ng-app ng-controller="Ctrl">
    <input type="text" ng-model="search">
    <ul>
        <li ng-repeat="name in names | filter:ignoreAccents">{{ name }}</li>
    </ul>
</div>

Java脚本

function Ctrl($scope) {
    function removeAccents(value) {
        return value
            .replace(/á/g, 'a')            
            .replace(/é/g, 'e')
            .replace(/í/g, 'i')
            .replace(/ó/g, 'o')
            .replace(/ú/g, 'u');
    }

    $scope.ignoreAccents = function(item) {               
        if (!$scope.search) return true;

        var text = removeAccents(item.toLowerCase())
        var search = removeAccents($scope.search.toLowerCase());
        return text.indexOf(search) > -1;
    };

    $scope.names = ['Jamón', 'Andrés', 'Cristián', 'Fernán', 'Raúl', 'Agustín'];
};

jsFiddle 在这里。

请注意,这仅适用于 字符串数组。如果要过滤对象列表(并像Angular一样搜索每个对象的每个属性),则必须增强过滤功能。我认为这个例子应该使您入门。



 类似资料:
  • 我使用HtmlCleaner库来解析/转换java中的HTML文件。 似乎无法处理像“Áák NUÍíNU NU NU NU NU”这样的西班牙语字符 我可以在HtmlCleaner中设置任何属性来处理此解决方案或任何其他解决方案吗?这是我用来调用它的代码:

  • 问题内容: 我有一个MySQL数据库,其单词包含西班牙语(áéíóú)的重音。我想知道是否有任何方法可以进行变音符号不敏感搜索。例如,如果我搜索“ lapiz”(不带重音),我想从数据库中获取包含“lápiz”一词的结果。我当前执行查询的方式如下: 这是一家在线商店,所以我不知道人们会搜索什么……“ lapiz”只是一个例子。 替代文字http://www.freeimagehosting.net

  • 绝影是在宾馆里首先见到BOSSLiu的,见面第一句话他正要问:“BOSS啊,最近有啥研究成果没有?拿出来分享分享。”哪晓得这次被BOSSLiu抢了先,只不过这次他万分激动地说:“BOSS啊,我发现现在金子遍地都是,剩下的就是如何去拣了!” BOSSLiu一改往日的习惯,这反而让绝影不知如何应对了。比如写程序,以前习惯用_snprintf,现在突然又冒出个_snprintf_s来,一时间竟不知道从哪

  • 我使用的是FOP(2.3.0版)。当我尝试编译我从OFFO下载的西班牙语模式时,运行,我得到下一个错误: 最后一行输出被重复无数次。 其他模式编译起来没有问题,但是当我包含西班牙语模式时,构建过程崩溃了。为了确保文件没有损坏,我下载了一个更新版本的es.xml,但是ant仍然崩溃。

  • 我在Java执行HTTP GET调用以获取可能包含西班牙语字符的内容,例如:@añez 但我从MySQL-:'a:±ez得到的回应是,到目前为止,我在网上搜索并做了以下操作: > 在连接字符串中追加了utf-8作为编码(使用Java)jdbc:mysql:/localhost:3306/dbname?useUnicode=true&characterencoding=utf-8 更新了表的编码AL

  • 问题内容: 我正在尝试学习如何使用NLTK标记西班牙语单词。 从nltk的书中,使用它们的示例标记英语单词非常容易。因为我是nltk和所有语言处理的新手,所以我对如何进行程序感到很困惑。 我已经下载了语料库。有没有办法指定一个语料库。我看了看文档,没有发现任何建议。我觉得我缺少一些关键概念。我是否需要在cess_esp语料库中手动标记文本中的单词?(通过手动,我的意思是标记我的情感,然后再次运行语