gpt4 book ai didi

javascript - Angularjs 过滤器无法正确处理土耳其语字符

转载 作者:行者123 更新时间:2023-12-01 00:40:30 25 4
gpt4 key购买 nike

使用土耳其语字符时,Angular.js 中的过滤无法正常工作。

输入:

<div>
Aranacak İfade: <input type="text" ng-model="searchKey" placeholder="Aramak için birşeyler girin">
</div>


<tbody>
<tr ng-repeat="personel in personeller | filter:searchKey">
<td> {{ personel.isim }} </td>
<td> {{ personel.soyisim }} </td>
<td> {{ personel.cinsiyet }} </td>
<td> {{ personel.maas }} </td>
</tr>
</tbody>

searchKey 是“istanbul”,我的表具有“stanbul”值。但在这种情况下没有结果。为什么会出现这个问题?

另外,我尝试了以下方法但不起作用:

ng-repeat="personel in personeller | filter:searchKey || searchKey.toLocaleUpperCase('tr')

最佳答案

通过直接===比较,stanbul不等于istanbul,简单的直接比较就是AngularJS过滤器默认情况下是这样。

即使您对每个字符串执行 toLocaleUpperCase() 操作,它们也不会相等,因为大写的 i 不是 і,但是toLocaleUpperCase() 也没有帮助,因为小写的 і 不是 i,而是

您需要的是 localeCompare(),并具有正确的选项:

str1.localeCompare(str2, 'tr', {sensitivity: 'base'})

当两个字符串匹配时,无论大小写和变音符号,上面的值将为0。将其放入您的网络控制台:

' Istanbul 尔'.localeCompare('istanbul', 'tr', {sensitivity: 'base'})

...您将看到它如何显示为 0

我已经很长时间没有使用 AngularJS 而不是较新的 Angular 了,所以我无法立即为您提供所需的确切代码,但 AngularJS 文档显示了这一点:

{{ 过滤表达式 |过滤器:表达式:比较器:anyPropertyKey}}

...您所要做的就是传递一个使用上述 localeCompare()comparator 参数。

哦,当然......

'İstanbul' !== 'Constantinople'

关于javascript - Angularjs 过滤器无法正确处理土耳其语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com