gpt4 book ai didi

javascript - "İ".toLowerCase() != "i"

转载 作者:行者123 更新时间:2023-12-03 01:49:31 26 4
gpt4 key购买 nike

在土耳其语中,有一个字母 I,它是 i 的大写形式。当我将其转换为小写时,我得到了一个奇怪的结果。例如:

var string_tr = "İ".toLowerCase();
var string_en = "i";

console.log( string_tr == string_en ); // false
console.log( string_tr.split("") ); // ["i", "̇"]
console.log( string_tr.charCodeAt(1) ); // 775
console.log( string_en.charCodeAt(0) ); // 105

"ı".toLowerCase() 返回一个额外的字符,如果我没记错的话,它是 COMBINING DOT ABOVE (U+0307) .

如何摆脱这个 Angular 色?

我可以过滤字符串:

var string_tr = "İ".toLowerCase();

string_tr = string_tr.split("").filter(function (item) {
if (item.charCodeAt(0) != 775) {
return true;
}
}).join("");

console.log(string_tr.split(""));

但我处理得正确吗?有更好的方法吗?而且,为什么会出现这个额外的字符呢?

有一些不一致的地方。例如,在土耳其语中,有小写形式的 I:ı。为什么下面的比较返回true

console.log( "ı".toUpperCase() == "i".toUpperCase() ) // true

同时

console.log( "İ".toLowerCase() == "i" ) // false

返回错误?

最佳答案

您需要进行土耳其语特定的大小写转换,可通过 String#toLocaleLowerCase 进行转换。 :

let s = "İ";

console.log(s.toLowerCase().length);
console.log(s.toLocaleLowerCase('tr-TR').length);

关于javascript - "İ".toLowerCase() != "i",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770621/

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