toLowerCase 错误的小写字符“İ”

toLowerCase wrong lower characters " İ "

其实我有一个简单的问题。当您检查以下代码时,您就会明白我的意思。

function isPalindrome(string){
  string = string.toLowerCase();
  var charArr = string.split('');

  charArr.forEach( char => {
    console.log(char);
  })
  console.log(charArr.length)
}

isPalindrome("İris");

输出

i
 ̇  <- what is this ?
r
i
s
5 

如您所见添加额外的字符。我无法解决这个问题。有办法解决这个问题吗?

这是有效的。 使用 toLowerCase 后,您必须删除可能的特殊字符。你可以使用 replace(/[^\w\s]/gi, '')

Fiddle

function isPalindrome(str){
  var charArr = str.toLowerCase().replace(/[^\w\s]/gi, '').split(""); //toLowerCase --> remove special characters --> split the string

  charArr.forEach( char => {
    console.log(char);
  })
  console.log(charArr.length)
}

isPalindrome("İris");