无法使用i字母进行搜索以首字母i字母开头的单词

时间:2019-06-10 13:21:22

标签: javascript uppercase

我正在使用带有土耳其语字符的搜索页面,问题出在小i字母上。当用户输入i时,由于某些代码(toUpperCase)使它成为我(大写的我英文)

我尝试实现自己的大写功能而不是使用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 个答案:

答案 0 :(得分:2)

要获得预期的结果,请使用toLocaleUpperCase

有关MDN- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase
的更多详细信息,请参阅此链接 语法:

string.toLocaleUpperCase('TR')