diff options
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/number/tolocalestring/index.html')
-rw-r--r-- | files/ru/web/javascript/reference/global_objects/number/tolocalestring/index.html | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/ru/web/javascript/reference/global_objects/number/tolocalestring/index.html new file mode 100644 index 0000000000..1c6048805a --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/number/tolocalestring/index.html @@ -0,0 +1,164 @@ +--- +title: Number.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +tags: + - Internationalization + - JavaScript + - Method + - Number + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +--- +<div>{{JSRef("Global_Objects", "Number")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> + +<p>Метод <strong><code>toLocaleString()</code></strong> возвращает строку с языко-зависимым представлением числа.</p> + +<p>Новые аргументы <code>locales</code> и <code>options</code> позволяют приложениям определять язык, чьё поведение и соглашения по форматированию которого оно хочет использовать. В старых реализациях, игнорирующих аргументы <code>locales</code> и <code>options</code>, используемая локаль и форма возвращённой строки целиком зависит от реализации.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> + +<pre class="syntaxbox"><code><var>numObj</var>.toLocaleString([<var>locales</var>[, <var>options</var>]])</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> + +<p>Проверьте раздел <a href="#Browser_compatibility">Совместимость с браузерами</a>, чтобы увидеть, какие браузеры поддерживают аргументы <code>locales</code> и <code>options</code>, и <a href="#Example:_Checking_for_support_for_locales_and_options_arguments">Пример: проверка поддержки аргументов <code>locales</code> и <code>options</code></a> для определения этой возможности.</p> + +<div class="note"> +<p><strong>Обратите внимание:</strong> API интернационализации ECMAScript, реализованное в Firefox 29, добавляет аргумент <code>locales</code> к методу <code>Number.toLocaleString()</code>. Если этот аргумент равен {{jsxref("Global_Objects/undefined", "undefined")}}, этот метод возвращает локализованные цифры на языке, определяемом ОС, в то время, как предыдущие версии Firefox возвращали цифры на английском языке. Это изменение было помечено, как регрессия, затрагивающая обратную совместимость, которая скоро может быть исправлена. ({{bug(999003)}})</p> +</div> + +<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat', 'Parameters')}}</div> + +<h2 id="Examples" name="Examples">Примеры</h2> + +<h3 id="Example_Using_toLocaleString" name="Example:_Using_toLocaleString">Пример: использование <code>toLocaleString</code></h3> + +<p>При базовом использовании без указания локали возвращается строка, отформатированная в соответствии с локалью и опциями по умолчанию.</p> + +<pre class="brush: js">var number = 3500; + +console.log(number.toLocaleString()); // Отобразит '3,500' в локали U.S. English +</pre> + +<h3 id="Example_Checking_for_support_for_locales_and_options_arguments" name="Example:_Checking_for_support_for_locales_and_options_arguments">Пример: проверка поддержки аргументов <code>locales</code> и <code>options</code></h3> + +<p>Аргументы <code>locales</code> и <code>options</code> поддерживаются ещё не всеми браузерами. Для проверки того, поддерживает ли их уже реализация, можно затребовать несуществующую метку языка и проверить, будет ли выброшено исключение {{jsxref("Global_Objects/RangeError", "RangeError")}}:</p> + +<pre class="brush: js">function toLocaleStringSupportsLocales() { + var number = 0; + try { + number.toLocaleString('i'); + } catch (e) { + return e.name === 'RangeError'; + } + return false; +} +</pre> + +<h3 id="Example_Using_locales" name="Example:_Using_locales">Пример: использование аргумента <code>locales</code></h3> + +<p>Этот пример показывает некоторые локализованные числовые форматы. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент <code>locales</code>:</p> + +<pre class="brush: js">var number = 123456.789; + +// В Германии в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - точка +console.log(number.toLocaleString('de-DE')); +// → 123.456,789 + +// В России в качестве разделителя целой и дробной части используется запятая, а в качестве разделителя разрядов - пробел +console.log(number.toLocaleString('ru-RU')); +// → 123 456,789 + +// В большинстве арабоговорящих стран используют настоящие арабские цифры +console.log(number.toLocaleString('ar-EG')); +// → ١٢٣٤٥٦٫٧٨٩ + +// В Индии используют разделители для тысяч/лакх/крор +console.log(number.toLocaleString('en-IN')); +// → 1,23,456.789 + +// Ключ расширения nu запрашивает систему нумерации, например, китайскую десятичную +console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec')); +// → 一二三,四五六.七八九 + +// Если запрашиваемый язык может не поддерживаться, например +// балийский, откатываемся на запасной язык, в данном случае индонезийский +console.log(number.toLocaleString(['ban', 'id'])); +// → 123.456,789 +</pre> + +<h3 id="Example_Using_options" name="Example:_Using_options">Пример: использование аргумента <code>options</code></h3> + +<p>Результат, предоставляемый методом <code>toLocaleString()</code>, может быть настроен с помощью аргумента <code>options</code>:</p> + +<pre class="brush: js">var number = 123456.789; + +// Запрашиваем формат валюты +console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' })); +// → 123.456,79 € + +console.log(number.toLocaleString('ru-RU', { style: 'currency', currency: 'RUB' })); +// → 123 456,79 ₽ + +// Японская йена не использует младшие единицы +console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' })) +// → ¥123,457 + +// Ограничиваем до трёх значащих цифр +console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 })); +// → 1,23,000 +</pre> + +<h2 id="Performance" name="Performance">Производительность</h2> + +<p>При форматировании большого количества чисел лучшим вариантом будет создание объекта {{jsxref("Global_Objects/NumberFormat", "NumberFormat")}} и использование функции, предоставляемой его свойством {{jsxref("NumberFormat.format")}}.</p> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>ECMAScript 3-е издание.</td> + <td>Стандарт</td> + <td>Изначальное определение. Реализована в JavaScript 1.5.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.7.4.3', 'Number.prototype.toLocaleString')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-13.2.1', 'Number.prototype.toLocaleString')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("javascript.builtins.Number.toLocaleString")}}</p> + +<h2 id="See_also" name="See_also">Смотрите также</h2> + +<ul> + <li>{{jsxref("Number.prototype.toString()")}}</li> +</ul> + +<div id="gtx-trans" style="position: absolute; left: 47px; top: 4182px;"> +<div class="gtx-trans-icon"></div> +</div> |