String.prototype.toLocaleUpperCase()

Метод toLocaleUpperCase() повертає той самий рядок, але з літерами переведеними до верхнього регістра відповідно до правил певної мови (місцевості).

Синтаксис

str.toLocaleUpperCase()
str.toLocaleUpperCase(locale) 
str.toLocaleUpperCase([locale, locale, ...])

Параметри

locale Optional
Цей параметр вказує мовний код (або перелік мовних кодів), відповідно до якого має здійснюватися перетворення регістра. Якщо вказано кілька мовних кодів (передано масив рядків), обирається найліпший з наявних. Якщо параметр не вказано, буде використано системне значення (з налаштувань оточення).

Вертає

Новий рядок із тим самим вмістом, але літерами переведеними до верхнього регістра відповідно до правил певної мови (місцевості).

Винятки

  • Викидає виняток RangeError ("Invalid language tag: xx_yy"), якщо параметр locale не є належним мовним кодом (кодом місцевості).
  • Викидає виняток TypeError ("Language ID should be string or object."), якщо елемент масиву locale не є рядком.

Опис

Всі малі літери перетворюються на великі відповідно до правил певної мови (місцевості), а все решта лишається без змін. Позаяк клас String належить до незмінних типів даних, виклик toLocaleUpperCase() створює новий рядок, лишаючи оригінал без змін. 

Зазвичай метод toLocaleUpperCase() вертає той самий результат, що й toUpperCase(). Втім для деяких мов, як-от турецька, правила перетворення регістра дещо відрізняються від того, що передбачено у Unicode, тож результат буде іншим.

Також зауважте, що перетворення не обов'язково є перетворенням символів 1:1, оскільки деякі символи можуть перетворитись на два (або навіть більше) символів при переведенні у верхній регістр. Таким чином, довжина отриманого рядка може відрізнятись від довжини вхідного рядка. Це також означає, що перетворення не є стабільним, а отже, наприклад, наступне може повернути false:
x.toLocaleLowerCase() === x.toLocaleUpperCase().toLocaleLowerCase()

Приклади

Використання toLocaleUpperCase()

Якщо мовний код не зазначено, використовується поточне системне значення:

// виводить 'АБЕТКА'
console.log('Абетка'.toLocaleUpperCase());

Можна вказати лише один код чи декілька одночасно:

// виводить 'I'
console.log('i\u0307'.toLocaleUpperCase('lt-LT'));

let locales = ['lt', 'LT', 'lt-LT', 'lt-u-co-phonebk', 'lt-x-lietuva'];

// виводить 'I'
console.log('i\u0307'.toLocaleUpperCase(locales));

Специфікації

Специфікація
ECMAScript (ECMA-262)
The definition of 'String.prototype.toLocaleUpperCase' in that specification.
ECMAScript Internationalization API (ECMA-402)
The definition of 'String.prototype.toLocaleUpperCase' in that specification.

Підтримка веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
toLocaleUpperCaseChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 4Safari Full support 1.3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
localeChrome Full support 58Edge Full support 12Firefox Full support 55IE Full support 6Opera Full support 45Safari Full support 10WebView Android Full support 58Chrome Android Full support 58Firefox Android Full support 55Opera Android Full support 42Safari iOS Full support 10Samsung Internet Android Full support 7.0nodejs Full support 13.0.0
Full support 13.0.0
Partial support 0.12
Notes
Notes Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.

Legend

Full support  
Full support
See implementation notes.
See implementation notes.

Див. також