为什么JS有大写字母(İ)有问题,而javascript可用大写ş,ö,ç,ğ,ü(Ş,Ö< / strong>,Ç,Ğ,Ü),如下所述? (问题与字母位置无关。)
"İş".toLowerCase().length
3
"İŞ".toLowerCase().length
3
"iŞ".toLowerCase().length
2
"iş".toLowerCase().length
2
此外
"İ".length
1
"İ".toLowerCase().length
2
"İ".toLocaleLowerCase().length
2
对于怀疑论者,这里是我复制上述代码的控制台的屏幕截图:
和我的字符集(这是我在问题发生后检查的第一件事):
<meta charset="utf-8" />
提前致谢。
答案 0 :(得分:3)
问题是首都İ
←之上的字符。这是javascript中的另一个字符串值。您可以使用.split();
查看字符数。需要注意的另一件事不仅仅是资本İ
,而且á
也在这些列表中。
您应该使用String.prototype.toLocaleLowerCase()
来区分特定于区域设置的案例映射。
console.log("áş".toLocaleLowerCase().split(''));
console.log("İş".toLocaleLowerCase().split(''));