Невозможно использовать букву i для поиска. Приведите слова, начинающиеся с заглавной буквы. - PullRequest
0 голосов
/ 10 июня 2019

Я работаю на странице поиска с турецкими символами, проблема в маленькой букве 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 (İ), но не принесет или не принесет что-либо еще и все (с моими пользовательскими функциями прописной буквы)

1 Ответ

2 голосов
/ 10 июня 2019

Чтобы достичь ожидаемого результата, используйте toLocaleUpperCase

Для получения более подробной информации см. MDN- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase
Синтаксис:

string.toLocaleUpperCase('TR')
...