不区分大小写的字符串与I18N文本的比较

时间:2017-09-27 20:45:04

标签: javascript node.js

我需要不区分地比较字符串。

显而易见的答案是使用toUpperCase(), 但是当处理土耳其字符时,toUpperCase()会将其中一些独特字符更改为其他字符。

帮助。

仅供参考我正在比较英雄联盟用户名

2 个答案:

答案 0 :(得分:1)

你可以使用这个自定义函数来大写土耳其字符

String.prototype.turkishToUpper = function () {
        var string = this;
        var letters = { "i": "İ", "ş": "Ş", "ğ": "Ğ", "ü": "Ü", "ö": "Ö", "ç": "Ç", "ı": "I" };
        string = string.replace(/(([iışğüçö]))/g, function (letter) { return letters[letter]; })
        return string.toUpperCase();
    }

var turkishUpperCase = yourWord.turkishToUpper()

答案 1 :(得分:0)

您可以使用以下功能

String.prototype.turkishToUpper = function(){
   var string = this;
   var letters = { "i": "İ", "ş": "Ş", "ğ": "Ğ", "ü": "Ü", "ö": "Ö", "ç": "Ç", "ı": "I" };
   string = string.replace(/(([iışğüçö]))+/g, function(letter){ return letters[letter]; })
   return string.toUpperCase();
}

String.prototype.turkishToLower = function(){
   var string = this;
   var letters = { "İ": "i", "I": "ı", "Ş": "ş", "Ğ": "ğ", "Ü": "ü", "Ö": "ö", "Ç": "ç" };
   string = string.replace(/(([İIŞĞÜÇÖ]))+/g, function(letter){ return letters[letter]; })
   return string.toLowerCase();
}