aki*_*uri 19 javascript case-sensitive uppercase
在土耳其语中,有一个字母?是大写的形式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) ); // 105Run Code Online (Sandbox Code Playgroud)
"?".toLowerCase()返回一个额外的字符,如果我没有弄错的话,它就是上面的组合点(U + 0307).
我如何摆脱这个角色?
我可以只过滤字符串:
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(""));Run Code Online (Sandbox Code Playgroud)
但我正确地处理了这个吗?有更好的方法吗?此外,为什么这个额外的角色首先出现?
有些不一致.例如,在土耳其语中,有一种小写形式I:?.为什么以下比较返回true
console.log( "?".toUpperCase() == "i".toUpperCase() ) // trueRun Code Online (Sandbox Code Playgroud)
而
console.log( "?".toLowerCase() == "i" ) // falseRun Code Online (Sandbox Code Playgroud)
返回false?
Ry-*_*Ry- 32
您需要特定于土耳其语的案例转换,可用于String#toLocaleLowerCase:
let s = "?";
console.log(s.toLowerCase().length);
console.log(s.toLocaleLowerCase('tr-TR').length);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3321 次 |
| 最近记录: |