[英]Javascript toLowerCase() giving different length with non-Latin characters
为什么JS的大写字母i( İ )有问题,而javascript的大写ş,ö,ç,ğ,ü( Ş , Ö , Ç , Ğ , Ü )是可以的呢? (问题与字母位置无关。)
"İş".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" />
提前致谢。
问题是大写İ
←上方的字符。 那是javascript中的另一个字符串值。 您可以使用.split();
查看字符数。 还有一点要注意它不只是资本İ
但á
也是在那些列表。
您应该使用String.prototype.toLocaleLowerCase()
来进行特定于语言环境的案例映射。
console.log("áş".toLocaleLowerCase().split('')); console.log("İş".toLocaleLowerCase().split(''));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.