string.indexOf() 不起作用 javascript

Nur*_*yev 2 javascript

我不明白为什么 indexOf 不起作用。特点 ”?” 在 ?stanbul 中是 UTF-8 字符,但是在将此字符串转换为小写后看起来还可以吗?!

var t = "?stanbul";
var q = "ist";
filterCandidate = t.toLowerCase(); //"istanbul"

var valueToMatch = filterCandidate.trim().substring(0, q.length); //"is"

console.log("filterCandidate: " + filterCandidate);
console.log("valueToMatch: " + valueToMatch);
showElement = false;
if (q.indexOf(valueToMatch) > -1) {
  showElement = true;
  
}
console.log("showElement: " + showElement);
Run Code Online (Sandbox Code Playgroud)

Saj*_*han 5

小写?stanbul是i?stanbul不是istanbul(注:区别i?&i)。

你在评论中说:

在土耳其语中,“我”是“?” “我”是“我”。此功能仅在我使用“?”时才有效。客户可以在不工作的地方使用lowercsae“i”

解决方案:使用t.toLocaleLowerCase('tr-TR')而不是t.toLowerCase()。

"?stanbul".toLowerCase()                // i?stanbul 
"?stanbul".toLocaleLowerCase('tr-TR')   // istanbul
Run Code Online (Sandbox Code Playgroud)

"?stanbul".toLowerCase()                // i?stanbul 
"?stanbul".toLocaleLowerCase('tr-TR')   // istanbul
Run Code Online (Sandbox Code Playgroud)