diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/global_objects/string/split | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/string/split')
-rw-r--r-- | files/ru/web/javascript/reference/global_objects/string/split/index.html | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/string/split/index.html b/files/ru/web/javascript/reference/global_objects/string/split/index.html new file mode 100644 index 0000000000..90f94de449 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/string/split/index.html @@ -0,0 +1,229 @@ +--- +title: String.prototype.split() +slug: Web/JavaScript/Reference/Global_Objects/String/split +tags: + - JavaScript + - Method + - Prototype + - Reference + - Référence(2) + - String + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/String/split +--- +<div>{{JSRef("Global_Objects", "String")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> + +<p>Метод <strong><code>split()</code></strong> разбивает объект {{jsxref("Global_Objects/String", "String")}} на массив строк путём разделения строки указанной подстрокой.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> + +<pre class="syntaxbox notranslate"><code><var>str</var>.split([<var>separator</var>[, <var>limit</var>]])</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> + +<dl> + <dt><code>separator</code></dt> + <dd>Необязательный параметр. Указывает символы, используемые в качестве разделителя внутри строки. Параметр <code>separator</code> может быть как строкой, так и {{jsxref("Global_Objects/RegExp", "регулярным выражением", "", 1)}}. Если параметр опущен, возвращённый массив будет содержать один элемент со всей строкой. Если параметр равен пустой строке, строка <code>str</code> будет преобразована в массив символов.</dd> + <dt><code>limit</code></dt> + <dd>Необязательный параметр. Целое число, определяющее ограничение на количество найденных подстрок. Метод <code>split()</code> всё равно разделяет строку на каждом сопоставлении с разделителем <code>separator</code>, но обрезает возвращаемый массив так, чтобы он содержал не более <code>limit</code> элементов.</dd> +</dl> + +<h2 id="Description" name="Description">Описание</h2> + +<p>Метод <code>split()</code> возвращает новый массив.</p> + +<p>Если разделитель <code>separator</code> найден, он удаляется из строки, а подстроки возвращаются в массиве. Если разделитель опущен, массив будет содержать только один элемент, состоящий из всей строки. Если разделитель является пустой строкой, строка <code>str</code> будет преобразована в массив символов.</p> + +<p>Если разделитель является регулярным выражением, содержащим подгруппы, то каждый раз при сопоставлении с разделителем, результаты (включая те, что не определены) захвата подгруппы будут помещаться внутрь выходного массива. Однако, не все браузеры поддерживают эту возможность.</p> + +<p>{{Note("Если строка является пустой строкой, метод <code>split()</code> вернёт массив, состоящий из одной пустой строки, а не пустой массив.")}}</p> + +<h2 id="Examples" name="Examples">Примеры</h2> + +<h3 id="Example_Using_split" name="Example:_Using_split">Пример: использование метода <code>split()</code></h3> + +<p>В следующем примере определяется функция, которая разбивает строку на массив строк, используя указанный разделитель. После разбиения строки, функция отображает сообщения, показывающие оригинальную строку (до разбиения), используемый разделитель, количество элементов в массиве и сами эти элементы.</p> + +<pre class="brush: js notranslate">function splitString(stringToSplit, separator) { + var arrayOfStrings = stringToSplit.split(separator); + + console.log('Оригинальная строка: "' + stringToSplit + '"'); + console.log('Разделитель: "' + separator + '"'); + console.log('Массив содержит ' + arrayOfStrings.length + ' элементов: ' + arrayOfStrings.join(' / ')); +} + +// Строчка из «Бури» Шекспира. Перевод Миxаила Донского. +var tempestString = 'И как хорош тот новый мир, где есть такие люди!'; +var monthString = 'Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек'; + +var space = ' '; +var comma = ','; + +splitString(tempestString, space); +splitString(tempestString); +splitString(monthString, comma); +</pre> + +<p>Пример сгенерирует следующий вывод:</p> + +<pre class="notranslate">Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" +Разделитель: " " +Массив содержит 10 элементов: И / как / хорош / тот / новый / мир, / где / есть / такие / люди! + +Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" +Разделитель: "undefined" +Массив содержит 1 элементов: И как хорош тот новый мир, где есть такие люди! + +Оригинальная строка: "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек" +Разделитель: "," +Массив содержит 12 элементов: Янв / Фев / Мар / Апр / Май / Июн / Июл / Авг / Сен / Окт / Ноя / Дек +</pre> + +<h3 id="Example_Removing_spaces_from_a_string" name="Example:_Removing_spaces_from_a_string">Пример: удаление пробелов из строки</h3> + +<p>В следующем примере метод <code>split()</code> ищет 0 или более пробелов, за которыми следует точка с запятой, за которой снова следуют 0 или более пробелов, и, если этот шаблон найден, удаляет пробелы из строки. Переменная <code>nameList</code> является массивом, возвращённым в результате работы метода <code>split()</code>.</p> + +<pre class="brush: js notranslate">var names = 'Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд '; + +console.log(names); + +var re = /\s*;\s*/; +var nameList = names.split(re); + +console.log(nameList); +</pre> + +<p>Пример напечатает две строки; на первой строке напечатана оригинальная строчка, а на второй — получившийся массив.</p> + +<pre class="notranslate">Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд +Гарри Трамп,Фред Барни,Хелен Ригби,Билл Абель,Крис Ханд +</pre> + +<h3 id="Example_Returning_a_limited_number_of_splits" name="Example:_Returning_a_limited_number_of_splits">Пример: возврат ограниченного числа подстрок</h3> + +<p>В следующем примере метод <code>split()</code> ищет 0 или более пробелов в строке и возвращает первые три найденных подстроки.</p> + +<pre class="brush: js notranslate">var myString = 'Привет, мир. Как дела?'; +var splits = myString.split(' ', 3); + +console.log(splits); +</pre> + +<p>Вывод скрипта будет следующим:</p> + +<pre class="brush: js notranslate">Привет,,мир.,Как +</pre> + +<h3 id="Example_Capturing_parentheses" name="Example:_Capturing_parentheses">Пример: захват подгрупп</h3> + +<p>Если параметр <code>separator</code> содержит подгруппы, сопоставившиеся результаты также будут присутствовать в возвращённом массиве.</p> + +<pre class="brush: js notranslate">var myString = 'Привет 1 мир. Предложение номер 2.'; +var splits = myString.split(/(\d)/); + +console.log(splits); +</pre> + +<p>Вывод скрипта будет следующим:</p> + +<pre class="brush: js notranslate">Привет ,1, мир. Предложение номер ,2,. +</pre> + +<h3 id="Example_Reversing_a_String_using_split" name="Example:_Reversing_a_String_using_split">Пример: обращение строки при помощи метода <code>split()</code></h3> + +<pre class="brush: js notranslate">var str = 'фывапролд'; +var strReverse = str.split('').reverse().join(''); // 'длорпавыф' +// split() возвращает массив, к которому применяются методы reverse() и join() +</pre> + +<p><strong>Бонус:</strong> используя оператор {{jsxref("Operators/Comparison_Operators", "===", "#Identity_.2F_strict_equality_(.3D.3D.3D)")}}, можно проверить, являлась ли строка палиндромом.</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.1.</td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-15.5.4.14', 'String.prototype.split')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td></td> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-string.prototype.split', 'String.prototype.split')}}</td> + <td>{{Spec2('ES6')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> + +<ul> + <li>{{jsxref("String.prototype.charAt()")}}</li> + <li>{{jsxref("String.prototype.indexOf()")}}</li> + <li>{{jsxref("String.prototype.lastIndexOf()")}}</li> + <li>{{jsxref("Array.prototype.join()")}}</li> +</ul> |