toLowerCase()。需要帮助以更现实的方式理解这一点

问题描述 投票:1回答:1

console.log('ALPHABET'.toLocaleLowerCase());

console.log('\u0130'.toLocaleLowerCase('tr') === 'i');
console.log('\u0130'.toLocaleLowerCase('en-US') === 'i');

let locales = ['tr', 'TR', 'tr-TR', 'tr-u-co-search', 'tr-x-turkish'];
console.log('\u0130'.toLocaleLowerCase(locales) === 'i');
javascript string locale
1个回答
0
投票

来自String.prototype.toLocaleLowerCase()

locale参数指示根据任何特定于语言环境的大小写映射用于转换为小写的语言环境。如果在Array中给出了多个语言环境,则使用最佳可用语言环境。默认语言环境是主机环境的当前语言环境

简单地说,不同语言环境返回的值在视觉上可能看起来相同,但它们的值是不同的。请看下面我的javascript。我已将值转换为提供的语言环境并将它们转换回Unicode,以便您可以看到它们的实际值。

希望这可以帮助,

/* Helper function to display unicode value of a string 
http://buildingonmud.blogspot.com/2009/06/convert-string-to-unicode-in-javascript.html
*/
toUnicode = theString => {
  var unicodeString = '';
  [...theString].forEach((c, i) => {
    var theUnicode = c.charCodeAt(0).toString(16).toUpperCase();
    while (theUnicode.length < 4) {
      theUnicode = '0' + theUnicode;
    }
    theUnicode = '\\u' + theUnicode;
    unicodeString += theUnicode;
  });
  return unicodeString;
}

// Unicode value of 'i'
console.log(`Unicode value of 'i': '${toUnicode('i')}'`);

//'tr': Unicode value: '\u0069'
console.log(`Unicode value for 'tr': '${toUnicode('\u0130'.toLocaleLowerCase('tr'))}'`);

// 'en-US': Unicode value: '\u0069\u0307'
console.log(`Unicode value for 'en-US': '${toUnicode('\u0130'.toLocaleLowerCase('en-US'))}'`);

let locales = ['tr', 'TR', 'tr-TR', 'tr-u-co-search', 'tr-x-turkish'];
console.log(`Unicode value for locales: '${toUnicode('\u0130'.toLocaleLowerCase(locales))}'`);
© www.soinside.com 2019 - 2024. All rights reserved.