diff options
| author | Ryan Johnson <rjohnson@mozilla.com> | 2021-04-29 16:16:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-29 16:16:42 -0700 |
| commit | 95aca4b4d8fa62815d4bd412fff1a364f842814a (patch) | |
| tree | 5e57661720fe9058d5c7db637e764800b50f9060 /files/uk/web/javascript/reference/global_objects/string/matchall | |
| parent | ee3b1c87e3c8e72ca130943eed260ad642246581 (diff) | |
| download | translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2 translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip | |
remove retired locales (#699)
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/string/matchall')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/string/matchall/index.html | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/string/matchall/index.html b/files/uk/web/javascript/reference/global_objects/string/matchall/index.html deleted file mode 100644 index 396fb3b2bc..0000000000 --- a/files/uk/web/javascript/reference/global_objects/string/matchall/index.html +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: String.prototype.matchAll() -slug: Web/JavaScript/Reference/Global_Objects/String/matchAll -tags: - - JavaScript - - String - - Регулярні Вирази - - метод -translation_of: Web/JavaScript/Reference/Global_Objects/String/matchAll ---- -<div>{{JSRef}}</div> - -<p>Метод <strong><code>matchAll()</code></strong> повертає ітератор з усіма збігами <em>рядка</em> з <em><a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions">регулярним виразом</a></em>, а також <a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges">захоплені групи</a>.</p> - -<div>{{EmbedInteractiveExample("pages/js/string-matchall.html")}}</div> - - - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox notranslate"><var>str</var>.matchAll(<var>regexp</var>)</pre> - -<h3 id="Параметри">Параметри</h3> - -<dl> - <dt><code><var>regexp</var></code></dt> - <dd> - <p>Об'єкт регулярного виразу.</p> - - <p>Якщо передано об'єкт <code>obj</code>, який не є регулярним виразом, він неявно перетворюється на {{jsxref("RegExp")}} за допомогою <code>new RegExp(<var>obj</var>)</code>.</p> - - <p>Об'єкт <code>RegExp</code> повинен мати прапор <code>/g</code>, інакше буде викинуто помилку <code>TypeError</code>.</p> - </dd> -</dl> - -<h3 id="Значення_що_повертається">Значення, що повертається</h3> - -<p><a href="/uk/docs/Web/JavaScript/Guide/Iterators_and_Generators">Ітератор</a> (ітерабельний об'єкт, який не можна повторно запустити).</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Regexp.exec_та_matchAll">Regexp.exec() та matchAll()</h3> - -<p>До появи у JavaScript методу <code>matchAll</code> можна було використовувати виклики <a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec">regexp.exec</a> (а також регулярні вирази з прапором <code>/g</code>) у циклі, щоб отримати усі збіги:</p> - -<pre class="brush: js notranslate">const regexp = RegExp('фу[а-я]*','g'); -const str = 'настільний футбол, фусбол'; -let match; - -while ((match = regexp.exec(str)) !== null) { - console.log(`Знайдено ${match[0]} початок=${match.index} кінець=${regexp.lastIndex}.`); - // виведе: "Знайдено футбол початок=11 кінець=17." - // виведе: "Знайдено фусбол початок=19 кінець=25." -}</pre> - -<p>З методом <code>matchAll</code> можна уникнути використання циклу {{jsxref("Statements/while", "while")}} та методу <code>exec</code> з <code>g</code>.</p> - -<p>Замість цього, використовуючи <code>matchAll</code>, ви отримуєте ітератор, який можна використовувати з більш зручними конструкціями {{jsxref("Statements/for...of", "for...of")}}, {{jsxref("Operators/Spread_syntax", "розкладанням масиву")}} чи {{jsxref("Array.from()")}}:</p> - -<pre class="brush: js notranslate">const regexp = RegExp('фу[а-я]*','g'); -const str = 'настільний футбол, фусбол'; -const matches = str.matchAll(regexp); - -for (const match of matches) { - console.log(`Знайдено ${match[0]} початок=${match.index} кінець=${match.index + match[0].length}.`); -} -// виведе: "Знайдено футбол початок=11 кінцець=17." -// виведе: "Знайдень фусбол початок=19 кінець=25." - -// Ітератор matches є вичерпаним після перебору for..of -// Викличте matchAll ще раз, щоб створити новий ітератор -Array.from(str.matchAll(regexp), m => m[0]); -// Array [ "футбол", "фусбол" ]</pre> - -<p>Метод <code>matchAll</code> викине виняток, якщо прапор <code>g</code> відсутній.</p> - -<pre class="brush: js notranslate">const regexp = RegExp('[а-в]',''); -const str = 'абв'; -str.matchAll(regexp); -// TypeError -</pre> - -<p><code>matchAll</code> робить внутрішній клон <code><var>regexp</var></code><var>,</var> тому, на відміну від {{jsxref("Global_Objects/RegExp/exec", "regexp.exec()")}}, <code>lastIndex</code> не змінюється під час пошуку.</p> - -<pre class="brush: js notranslate">const regexp = RegExp('[а-в]','g'); -regexp.lastIndex = 1; -const str = 'абв'; -Array.from(str.matchAll(regexp), m => `${regexp.lastIndex} ${m[0]}`); -// Array [ "1 б", "1 в" ]</pre> - -<h3 id="Кращий_доступ_до_захоплених_груп_ніж_у_String.prototype.match">Кращий доступ до захоплених груп (ніж у String.prototype.match())</h3> - -<p>Ще одна приваблива причина використовувати <code>matchAll</code> - покращений доступ до захоплених груп.</p> - -<p>Захоплені групи ігноруються при використанні {{jsxref("Global_Objects/String/match", "match()")}} з глобальним прапором <code>/g</code>:</p> - -<pre class="brush: js notranslate">let regexp = /т(е)(ст(\d?))/g; -let str = 'тест1тест2'; - -str.match(regexp); -// Array ['тест1', 'тест2']</pre> - -<p>Використовуючи <code>matchAll</code>, ви можете легко звертатись до захоплених груп:</p> - -<pre class="brush: js notranslate">let array = [...str.matchAll(regexp)]; - -array[0]; -// ['тест1', 'е', 'ст1', '1', index: 0, input: 'тест1тест2', length: 4] -array[1]; -// ['тест2', 'е', 'ст2', '2', index: 5, input: 'тест1тест2', length: 4] -</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Специфікація</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-string.prototype.matchall', 'String.prototype.matchAll')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> - -<p class="hidden">The compatibility table on 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.String.matchAll")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("String.prototype.match()")}}</li> - <li><a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions">Використання регулярних виразів у JavaScript</a></li> - <li><a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges">Захоплені групи</a></li> - <li>{{jsxref("RegExp")}}</li> - <li>{{jsxref("RegExp.prototype.exec()")}}</li> - <li>{{jsxref("RegExp.prototype.test()")}}</li> -</ul> |
