aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/string/match
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/string/match
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/string/match')
-rw-r--r--files/uk/web/javascript/reference/global_objects/string/match/index.html194
1 files changed, 194 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/string/match/index.html b/files/uk/web/javascript/reference/global_objects/string/match/index.html
new file mode 100644
index 0000000000..dfc6bf5f6b
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/string/match/index.html
@@ -0,0 +1,194 @@
+---
+title: String.prototype.match()
+slug: Web/JavaScript/Reference/Global_Objects/String/match
+tags:
+ - JavaScript
+ - Method
+ - Prototype
+ - String
+ - Довідка
+ - Регулярний вираз
+ - метод
+translation_of: Web/JavaScript/Reference/Global_Objects/String/match
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <strong><code>match()</code></strong> шукає та повертає (якщо є) збіги <em>рядка</em> із зазначеним <a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions">регулярним виразом</a>.</p>
+
+<p>{{EmbedInteractiveExample("pages/js/string-match.html", "shorter")}}</p>
+
+<div class="hidden">
+<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
+</div>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><var>str</var>.match(<var>regexp</var>)</pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><code>regexp</code></dt>
+ <dd>Об'єкт регулярного виразу.</dd>
+ <dd>Якщо передати значення іншого типу, воно буде неявно перетворене на {{jsxref("RegExp")}} за допомогою оператора <code>new RegExp(<em>regexp</em>).</code></dd>
+ <dd>Якщо жодного параметра не вказано, метод поверне {{jsxref("Array","масив")}} з одним елементом — порожнім рядком: <code>[""]</code>.</dd>
+</dl>
+
+<h3 id="Вертає">Вертає</h3>
+
+<p>{{jsxref("Array","Масив")}}, чий вміст залежить від наявності чи відсутності глобального (<code>g</code>) прапора, або {{jsxref("null")}}, якщо жодних збігів не знайдено.</p>
+
+<ul>
+ <li>Якщо використовується прапор <code>g</code>, метод поверне усі результати, що збігаються з повним регулярним виразом, але не поверне захоплені групи.</li>
+ <li>Якщо прапор <code>g</code> не використовується, метод поверне лише перший повний збіг та захоплені групи, які він містить. У цьому випадку повернений елемент матиме додаткові властивості, описані нижче.</li>
+</ul>
+
+<h4 id="Додаткові_властивості">Додаткові властивості</h4>
+
+<p>Як пояснювалось вище, деякі результати містять наступні додаткові властивості:</p>
+
+<dl>
+ <dt><code>groups</code></dt>
+ <dd>Масив іменованих захоплених груп або {{jsxref("undefined")}}, якщо іменовані групи не були визначені. Дивіться <a href="/uk/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges">Групи та діапазони</a>, щоб дізнатись більше.</dd>
+ <dt><code>index</code></dt>
+ <dd>Індекс пошуку, за яким був знайдений результат.</dd>
+ <dt><code>input</code> </dt>
+ <dd>Копія рядка, в якому здійснювався пошук.</dd>
+</dl>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Якщо регулярний вираз не позначено прапорцем <code>g</code>, виклик <code>str.match()</code> повертає такий самий результат, що й {{jsxref("RegExp.prototype.exec()", "RegExp.exec()")}}.</p>
+
+<h3 id="Інші_методи">Інші методи</h3>
+
+<ul>
+ <li>Якщо вам треба з'ясувати, чи відповідає рядок регулярному виразові {{jsxref("RegExp")}}, скористайтеся методом {{jsxref("RegExp.prototype.test()", "RegExp.test()")}}.</li>
+ <li>Якщо вас цікавить лише перший збіг, можете натомість використати {{jsxref("RegExp.prototype.exec()", "RegExp.exec()")}}.</li>
+ <li>Якщо ви хочете отримати захоплені групи, а прапорець <code>g</code> встановлено, вам потрібен метод {{jsxref("RegExp.prototype.exec()", "RegExp.exec()")}} або {{jsxref("String.prototype.matchAll()")}}.</li>
+</ul>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Використання_match">Використання <code>match()</code></h3>
+
+<p>У прикладі нижче метод <code>match()</code> задіяно, щоб знайти слово <code>«розділ»</code>, за ним одну чи кілька цифр, далі десяткова крапка та 0 чи більше числових символів.</p>
+
+<p>Регулярний вираз позначено прапорцем <code>i</code>, що означає відсутність розрізнювання великих та малих літер.</p>
+
+<pre class="brush: js">var str = 'Докладніше див. розділ 3.4.5.1';
+var re = /див\. (розділ \d+(\.\d)*)/i;
+var found = str.match(re);
+
+console.log(found);
+
+// Виводить:
+// [
+// 0: "див. розділ 3.4.5.1"
+// 1: "розділ 3.4.5.1"
+// 2: ".1"
+// index: 11
+// input: "Докладніше див. розділ 3.4.5.1"
+// ]
+
+// Рядок "див. розділ 3.4.5.1" є повним збігом.
+// Рядок "розділ 3.4.5.1" — це підрядок, захоплений підвиразом '(розділ \d+(\.\d)*)'
+// Рядок ".1" — це останній підрядок, захоплений підвиразом '(\.\d)'
+// Властивість 'index' (11) — це зсув підрядка, що відповідає регулярному виразові
+// Властивість 'input' — це повна копія досліджуваного рядка str
+</pre>
+
+<h3 id="Вживання_прапорців_i_та_g_із_методом_match">Вживання прапорців <code>i</code> та <code>g</code> із методом <code>match()</code></h3>
+
+<p>Приклад нижче засвідчує дію прапорців <code>i</code> (ignore case — регістронезалежний режим) та <code>g</code> (global — пошук усіх збігів, а не тільки першого) при використанні метода <code>match()</code>. Будуть повернені усі літери від <code>A</code> до <code>E</code> та від <code>a</code> до <code>e</code>, кожна як окремий елемент масиву.</p>
+
+<pre class="brush: js">var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
+var regexp = /[A-E]/gi;
+var matches_array = str.match(regexp);
+
+console.log(matches_array);
+// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
+</pre>
+
+<div class="blockIndicator note">
+<p><strong>Заувага:</strong> Дивіться також метод {{jsxref("String.prototype.matchAll()")}} та <a href="https://wiki.developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/String/g/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags">Складний пошук за допомогою прапорів</a>.</p>
+</div>
+
+<h3 id="Використання_іменованих_груп">Використання іменованих груп</h3>
+
+<p>У переглядачах, які підтримують іменовані захоплені групи, наступний код захопить <code>"їжак"</code> чи <code>"кіт"</code> у групу на ім'я <code>"тварина"</code>:</p>
+
+<pre class="brush: js">let paragraph = 'Єхидна, ґава, їжак ще й шиплячі плазуни бігцем форсують Янцзи.';
+
+let capturingRegex = /(?&lt;тварина&gt;їжак|кіт) ще й/;
+found = paragraph.match(capturingRegex);
+console.log(found.groups); // {тварина: "їжак"}</pre>
+
+<h3 id="Використання_match_без_параметрів">Використання <code>match()</code> без параметрів</h3>
+
+<pre class="brush: js">var str = "Я — Дух одвічної стихії";
+
+// вертає ["", index: 0, input: "Я — Дух одвічної стихії"]
+str.match();</pre>
+
+<h3 id="Параметр_відмінного_від_RegExp_типу">Параметр відмінного від <code>RegExp</code> типу</h3>
+
+<p>Якщо переданий параметр являє собою рядок або число, його буде перетворено на об'єкт {{jsxref("RegExp")}} шляхом неявного виклику <code>new RegExp(obj)</code>.</p>
+
+<p>Якщо це додатнє число, його знаком <code>+</code> буде знехтувано, проте для від'ємного числа знак <code>-</code> стане частиною регулярного виразу:</p>
+
+<pre class="brush: js">var str1 = "NaN означає «не число». Нескінченність у JavaScript має дві форми: -Infinity та +Infinity.",
+ str2 = "Моїй бабці 65 років, а дідусеві — 63.",
+ str3 = "Незмінна величина null позначає відсутність очікуваного значення.";
+
+str1.match("число"); // "число" є рядком; вертає ["число"]
+str1.match(NaN); // величина NaN є числом; вертає ["NaN"]
+str1.match(Infinity); // величина Infinity також є числом; вертає ["Infinity"]
+str1.match(+Infinity); // вертає ["Infinity"]
+str1.match(-Infinity); // вертає ["-Infinity"]
+str2.match(65); // вертає ["65"]
+str2.match(+65); // додатнє число; вертає ["65"]
+str3.match(null); // вертає ["null"]</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Специфікація</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-string.prototype.match', 'String.prototype.match')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
+
+<h3 id="Базова_підтримка_методу_match">Базова підтримка методу <samp>match()</samp></h3>
+
+<div class="hidden">
+<p>Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</p>
+</div>
+
+<p>{{Compat("javascript.builtins.String.match")}}</p>
+
+<h3 id="Підтримка_іменованих_груп">Підтримка іменованих груп</h3>
+
+<p>{{Compat("javascript.builtins.RegExp.named_capture_groups")}}</p>
+
+<h2 id="Зауваги_щодо_Firefox">Зауваги щодо Firefox</h2>
+
+<ul>
+ <li>Аргумент <code>flags</code> був нестандартним другим аргументом, доступним лише у Firefox: <code><var>str</var>.match(<var>regexp, flags</var>)</code>. Він був прибраний, починаючи з Firefox 49.</li>
+ <li>У Firefox 27 цей метод було узгоджено зі специфікацією ECMAScript. Коли <code>match()</code> викликано із глобальним регулярним виразом, властивість {{jsxref("RegExp.lastIndex")}} (якщо зазначено) скидається до <code>0</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=501739">bug 501739</a>).</li>
+</ul>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.matchAll()")}}</li>
+ <li>{{jsxref("RegExp")}}</li>
+ <li>{{jsxref("RegExp.prototype.exec()")}}</li>
+ <li>{{jsxref("RegExp.prototype.test()")}}</li>
+</ul>