Я работаю на странице поиска с турецкими символами, проблема в маленькой букве i Когда пользователь вводит i, он не выводит слова, начинающиеся с İ (заглавная буква i на турецком языке), потому что некоторый код (toUpperCase) делает его I ( прописной я на английском)
Я пытался реализовать свою собственную функцию в верхнем регистре вместо использования toUpperCase, но не получилось.
return this.options.filter(item => {
// this.search = this.search.charAt(0).toUpperCase() + name.slice(1)
return this.capitalize(item.name).indexOf(self.search.toUpperCase()) !== -1
// return item.name.toUpperCase().indexOf(this.search.toUpperCase()) !== -1 // this is the original line that works except for letter i
})
это мои пользовательские функции с заглавной буквы
capitalize1 (s) {
return s.charAt(0).replace('i', 'İ')
return s.charAt(0).replace('ı', 'I')
return s.charAt(0).replace('ü', 'Ü')
return s.charAt(0).replace('a', 'A')
return s.charAt(0).replace('b', 'c')
},
capitalize(search) {
if (search.substring(0,1) === 'i') {
search = search.replace('i', 'İ')
// search = this.capitalize1(self.search)
return search
} else {
var firstChar = search.charCodeAt(0);
if (firstChar >= 97 && firstChar <= 122) {
return String.fromCharCode(firstChar - 32) + word.substr(1);
}
return search;
}
}
Я ожидаю, что это принесет слова, начинающиеся с заглавной буквы i (İ), но не принесет или не принесет что-либо еще и все (с моими пользовательскими функциями прописной буквы)