首页 > 解决方案 > javascript相等运算符为什么在toLowerCase()之后返回false,即使字符串相同(utf-8)?

问题描述

嗨,我正在尝试在 javascript 中运行此代码

const upperCase = "İ"
const lowerCase = "i"
const newLowerCase=upperCase.toLowerCase();

console.log(lowerCase);
console.log(newLowerCase);
// expected output: true, return false
console.log(newLowerCase == lowerCase);

这是返回 true

console.log("i".includes("i"))

但这也回归真实

console.log("İ".toLowerCase().includes("i"))

这一定与土耳其语中的字符有关,但我无法弄清楚为什么会发生这种情况。我该如何解决这个问题?

标签: javascript

解决方案


的输出"İ".toLowerCase()是一个小写字母i,带有一个附加的\u0307“上面的组合点”。

也就是说,结果是\u0069\u0307

因此,该字符串确实包含小写字母i,因此是 的真实结果.include,但它不等于小写字母i


推荐阅读