From 4cdea2964c26508558c53480afdb2b2389136d51 Mon Sep 17 00:00:00 2001 From: AntonBurchak Date: Wed, 24 Aug 2022 15:22:32 +0300 Subject: [PATCH 01/15] Translation finished --- .../02-regexp-character-classes/article.md | 166 +++++++++--------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 201c78a05..d90b96dff 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -1,203 +1,203 @@ # Character classes -Consider a practical task -- we have a phone number like `"+7(903)-123-45-67"`, and we need to turn it into pure numbers: `79031234567`. +Розглянемо практичне завдання -- у нас є номер телефону типу `"+1(703)-123-45-67"`, і нам потрібно перетворити його на рядок тільки з чисел: `17031234567`. -To do so, we can find and remove anything that's not a number. Character classes can help with that. +Для цього ми можемо знайти та видалити все, що не є числом. Із цим нам допоможуть символьні класи. -A *character class* is a special notation that matches any symbol from a certain set. +*Символьний клас* – це спеціальне позначення, яке відповідає будь-якому символу певного набору. -For the start, let's explore the "digit" class. It's written as `pattern:\d` and corresponds to "any single digit". +Для початку давайте розглянемо клас "цифра". Він позначається як `pattern:\d` і відповідає "будь-якій одній цифрі". -For instance, let's find the first digit in the phone number: +Наприклад, знайдемо першу цифру в номері телефону: ```js run -let str = "+7(903)-123-45-67"; +let str = "+1(703)-123-45-67"; let regexp = /\d/; -alert( str.match(regexp) ); // 7 +alert( str.match(regexp) ); // 1 ``` -Without the flag `pattern:g`, the regular expression only looks for the first match, that is the first digit `pattern:\d`. +Без прапора `pattern:g` регулярний вираз шукає лише перший збіг, тобто першу цифру `pattern:\d`. -Let's add the `pattern:g` flag to find all digits: +Давайте додамо прапор `pattern:g`, щоб знайти всі цифри: ```js run -let str = "+7(903)-123-45-67"; +let str = "+1(703)-123-45-67"; let regexp = /\d/g; -alert( str.match(regexp) ); // array of matches: 7,9,0,3,1,2,3,4,5,6,7 +alert( str.match(regexp) ); // масив збігів: 1,7,0,3,1,2,3,4,5,6,7 -// let's make the digits-only phone number of them: -alert( str.match(regexp).join('') ); // 79031234567 +// давайте зробимо з них номер телефону лише цифрами: +alert( str.match(regexp).join('') ); // 17031234567 ``` -That was a character class for digits. There are other character classes as well. +Це був символьний клас для цифр. Є й інші символьні класи. -Most used are: +Найбільш використовувані: -`pattern:\d` ("d" is from "digit") -: A digit: a character from `0` to `9`. +`pattern:\d` ("d" від англійского "digit" означає "цифра") +: Цифра: символ від `0` до `9`. -`pattern:\s` ("s" is from "space") -: A space symbol: includes spaces, tabs `\t`, newlines `\n` and few other rare characters, such as `\v`, `\f` and `\r`. +`pattern:\s` ("s" від англійского "space" означає "пробіл") +: Пробільні символи: включає символ пробілу, табуляції `\t`, перенесення рядка `\n` і деякі інші рідкісні пробілові символи, що позначаються як `\v`, `\f` і `\r`. -`pattern:\w` ("w" is from "word") -: A "wordly" character: either a letter of Latin alphabet or a digit or an underscore `_`. Non-Latin letters (like cyrillic or hindi) do not belong to `pattern:\w`. +`pattern:\w` ("w" від англійского "word" означає "слово") +: Символ «слова» – літера латинського алфавіту, цифра або підчеркування `_`. Нелатинські літери (наприклад, кирилиця чи хінді) не належать до `pattern:\w`. -For instance, `pattern:\d\s\w` means a "digit" followed by a "space character" followed by a "wordly character", such as `match:1 a`. +Наприклад, `pattern:\d\s\w` означає "цифру", за якою йде "символ пробілу", після якого йде "символ слова", наприклад `match:1 a`. -**A regexp may contain both regular symbols and character classes.** +**Регулярний вираз може містити як звичайні символи, так і символьні класи.** -For instance, `pattern:CSS\d` matches a string `match:CSS` with a digit after it: +Наприклад, `pattern:CSS\d` відповідає рядку `match:CSS` із цифрою після нього: ```js run -let str = "Is there CSS4?"; +let str = "Чи існує CSS4?"; let regexp = /CSS\d/ alert( str.match(regexp) ); // CSS4 ``` -Also we can use many character classes: +Також ми можемо використовувати багато символьних класів: ```js run alert( "I love HTML5!".match(/\s\w\w\w\w\d/) ); // ' HTML5' ``` -The match (each regexp character class has the corresponding result character): +Відповідність (кожному символьному класу відповідає один символ результату): ![](love-html5-classes.svg) -## Inverse classes +## Зворотні символьні класи -For every character class there exists an "inverse class", denoted with the same letter, but uppercased. +Для кожного символьного класу існує "зворотній клас", що позначається тією ж літерою, але у верхньому регістрі. -The "inverse" means that it matches all other characters, for instance: +"Зворотній" означає, що він відповідає всім іншим символам, наприклад: `pattern:\D` -: Non-digit: any character except `pattern:\d`, for instance a letter. +: Не цифра: будь-який символ, окрім `pattern:\d`, наприклад, літера. `pattern:\S` -: Non-space: any character except `pattern:\s`, for instance a letter. +: Не пробіл: будь-який символ, окрім `pattern:\s`, наприклад, літера. `pattern:\W` -: Non-wordly character: anything but `pattern:\w`, e.g a non-latin letter or a space. +: Будь-який символ, окрім `pattern:\w`, тобто не букви з латиниці, не знак підкреслення і цифра. -In the beginning of the chapter we saw how to make a number-only phone number from a string like `subject:+7(903)-123-45-67`: find all digits and join them. +На початку розділу ми бачили, як створити номер телефону з рядка виду `subject:+1(703)-123-45-67`: знайти всі цифри та з'єднати їх. ```js run -let str = "+7(903)-123-45-67"; +let str = "+1(703)-123-45-67"; -alert( str.match(/\d/g).join('') ); // 79031234567 +alert( str.match(/\d/g).join('') ); // 17031234567 ``` -An alternative, shorter way is to find non-digits `pattern:\D` and remove them from the string: +Альтернативний, коротший шлях – знайти нецифрові символи `pattern:\D` і видалити їх з рядка: ```js run -let str = "+7(903)-123-45-67"; +let str = "+1(703)-123-45-67"; -alert( str.replace(/\D/g, "") ); // 79031234567 +alert( str.replace(/\D/g, "") ); // 17031234567 ``` -## A dot is "any character" +## Крапка – це будь-який символ -A dot `pattern:.` is a special character class that matches "any character except a newline". +Крапка `pattern:.` – це спеціальний символьний клас, який відповідає "будь-якому символу, крім нового рядка". -For instance: +Наприклад: ```js run -alert( "Z".match(/./) ); // Z +alert( "Y".match(/./) ); // Y ``` -Or in the middle of a regexp: +Або в середині регулярного виразу: ```js run let regexp = /CS.4/; alert( "CSS4".match(regexp) ); // CSS4 alert( "CS-4".match(regexp) ); // CS-4 -alert( "CS 4".match(regexp) ); // CS 4 (space is also a character) +alert( "CS 4".match(regexp) ); // CS 4 (пробіл також є символом) ``` -Please note that a dot means "any character", but not the "absence of a character". There must be a character to match it: +Зверніть увагу, що точка означає "будь-який символ", але не "відсутність символу". Там має бути будь-який символ, щоб відповідати умові пошуку: ```js run -alert( "CS4".match(/CS.4/) ); // null, no match because there's no character for the dot +alert( "CS4".match(/CS.4/) ); // null, немає збігів тому що немає символу для точки ``` -### Dot as literally any character with "s" flag +### Крапка, як буквально будь-який символ із прапорцем "s". -By default, a dot doesn't match the newline character `\n`. +За замовчуванням крапка не відповідає символу нового рядка `\n`. -For instance, the regexp `pattern:A.B` matches `match:A`, and then `match:B` with any character between them, except a newline `\n`: +Наприклад, регулярний вираз `pattern:A.B` відповідає `match:A`, а потім `match:B` з будь-яким символом між ними, крім символу нового рядка `\n`: ```js run -alert( "A\nB".match(/A.B/) ); // null (no match) +alert( "A\nB".match(/A.B/) ); // null (немає збігів) ``` -There are many situations when we'd like a dot to mean literally "any character", newline included. +Є багато ситуацій, коли ми хотіли б, щоб крапка означала буквально "будь-який символ", включаючи новий рядок. -That's what flag `pattern:s` does. If a regexp has it, then a dot `pattern:.` matches literally any character: +Ось що робить прапор `pattern:s`. Якщо регулярний вираз містить його, то крапка `pattern:.` відповідає буквально будь-якому символу: ```js run -alert( "A\nB".match(/A.B/s) ); // A\nB (match!) +alert( "A\nB".match(/A.B/s) ); // A\nB (збіг!) ``` -````warn header="Not supported in IE" -The `pattern:s` flag is not supported in IE. +````warn header="Не підтримується в IE" +Прапор `pattern:s` не підтримується в IE. -Luckily, there's an alternative, that works everywhere. We can use a regexp like `pattern:[\s\S]` to match "any character" (this pattern will be covered in the article ). +На щастя, є альтернатива, яка працює всюди. Ми можемо використовувати регулярний вираз, як-от `pattern:[\s\S]`, щоб відповідати "будь-якому символу" (цей шаблон буде описано в статті ). ```js run -alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (match!) +alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (збіг!) ``` -The pattern `pattern:[\s\S]` literally says: "a space character OR not a space character". In other words, "anything". We could use another pair of complementary classes, such as `pattern:[\d\D]`, that doesn't matter. Or even the `pattern:[^]` -- as it means match any character except nothing. +Шаблон `pattern:[\s\S]` буквально говорить: "пробіл АБО не пробіл". Іншими словами, "що завгодно". Ми могли б використати іншу пару додаткових класів, наприклад `pattern:[\d\D]`, це не має значення. Або навіть `pattern:[^]` -- оскільки це означає збіг будь-якого символу, крім нічого. -Also we can use this trick if we want both kind of "dots" in the same pattern: the actual dot `pattern:.` behaving the regular way ("not including a newline"), and also a way to match "any character" with `pattern:[\s\S]` or alike. +Також ми можемо використати цей спосіб, якщо хочемо, щоб обидва типи "крапок" були в одному шаблоні: наявний шаблон `pattern:.` крапки, який поводиться звичайним способом ("без нового рядка"), а також спосіб відповідності "будь-якому символу" з `pattern:[\s\S]` або подібним. ```` -````warn header="Pay attention to spaces" -Usually we pay little attention to spaces. For us strings `subject:1-5` and `subject:1 - 5` are nearly identical. +````warn header="Зверніть увагу на пробіли" +Зазвичай ми приділяємо мало уваги пробілам. Для нас рядки `subject:1-5` і `subject:1-5` майже ідентичні. -But if a regexp doesn't take spaces into account, it may fail to work. +Але якщо регулярний вираз не враховує пробіли, він може не працювати. -Let's try to find digits separated by a hyphen: +Спробуємо знайти цифри, розділені дефісом: ```js run -alert( "1 - 5".match(/\d-\d/) ); // null, no match! +alert( "1 - 5".match(/\d-\d/) ); // null, немає збігів! ``` -Let's fix it adding spaces into the regexp `pattern:\d - \d`: +Давайте виправимо це, додавши пробіли в регулярний вираз `pattern:\d - \d`: ```js run -alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, now it works -// or we can use \s class: -alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, also works +alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, тепер працює +// або ми можемо використати \s клас: +alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, також працює ``` -**A space is a character. Equal in importance with any other character.** +**Пробіл – це символ. Такий же важливий, як і будь-який інший.** -We can't add or remove spaces from a regular expression and expect it to work the same. +Ми не можемо додавати або видаляти пробіли в регулярному виразі й сподіватися, що він працюватиме так само. -In other words, in a regular expression all characters matter, spaces too. +Іншими словами, у регулярному виразі всі символи мають значення, пробіли також. ```` ## Summary -There exist following character classes: +Існують такі класи символів: -- `pattern:\d` -- digits. -- `pattern:\D` -- non-digits. -- `pattern:\s` -- space symbols, tabs, newlines. -- `pattern:\S` -- all but `pattern:\s`. -- `pattern:\w` -- Latin letters, digits, underscore `'_'`. -- `pattern:\W` -- all but `pattern:\w`. -- `pattern:.` -- any character if with the regexp `'s'` flag, otherwise any except a newline `\n`. +- `pattern:\d` -- цифри. +- `pattern:\D` -- нецифри. +- `pattern:\s` -- символи пробілів, табуляції, символи нового рядка. +- `pattern:\S` -- усі, крім `pattern:\s`. +- `pattern:\w` -- латинські літери, цифри, підкреслення `'_'`. +- `pattern:\W` -- усі, крім `pattern:\w`. +- `pattern:.` -- будь-який символ, якщо з прапорцем регулярного виразу `'s'`, інакше будь-який, крім символу нового рядка `\n`. -...But that's not all! +...Але це ще не все! -Unicode encoding, used by JavaScript for strings, provides many properties for characters, like: which language the letter belongs to (if it's a letter), is it a punctuation sign, etc. +Кодування Юнікод, яке використовується JavaScript для рядків, надає багато властивостей для символів, наприклад: до якої мови належить літера (якщо це літера), чи це знак пунктуації тощо. -We can search by these properties as well. That requires flag `pattern:u`, covered in the next article. +Ми також можемо шукати за цими властивостями. Для цього потрібен прапорець `pattern:u`, який описано в наступній статті. From 200bfd9c50a6c0fbdc446eafafad182c436d3596 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:43:12 +0300 Subject: [PATCH 02/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index d90b96dff..a9b162643 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -184,7 +184,7 @@ alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, також працює Іншими словами, у регулярному виразі всі символи мають значення, пробіли також. ```` -## Summary +## Підсумки Існують такі класи символів: From 0216f7a389ab57a3551fb3080eeaaaec24dde139 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:43:54 +0300 Subject: [PATCH 03/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index a9b162643..fcedb1557 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -177,7 +177,7 @@ alert( "1 - 5".match(/\d - \d/) ); // 1 - 5, тепер працює alert( "1 - 5".match(/\d\s-\s\d/) ); // 1 - 5, також працює ``` -**Пробіл – це символ. Такий же важливий, як і будь-який інший.** +**Пробіл -- це символ. Так само важливий, як і будь-який інший.** Ми не можемо додавати або видаляти пробіли в регулярному виразі й сподіватися, що він працюватиме так само. From c00effcf93cfe8ed35f3d3bbb33a510807d7431c Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:44:10 +0300 Subject: [PATCH 04/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index fcedb1557..ddcf867a0 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -4,7 +4,7 @@ Для цього ми можемо знайти та видалити все, що не є числом. Із цим нам допоможуть символьні класи. -*Символьний клас* – це спеціальне позначення, яке відповідає будь-якому символу певного набору. +*Символьний клас* -- це спеціальне позначення, яке відповідає будь-якому символу з певного набору. Для початку давайте розглянемо клас "цифра". Він позначається як `pattern:\d` і відповідає "будь-якій одній цифрі". From e1b2e6ee23a805faff0e636d88def989902f2660 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:44:20 +0300 Subject: [PATCH 05/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index ddcf867a0..4cfa2d9d7 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -29,7 +29,7 @@ let regexp = /\d/g; alert( str.match(regexp) ); // масив збігів: 1,7,0,3,1,2,3,4,5,6,7 -// давайте зробимо з них номер телефону лише цифрами: +// давайте зробимо з них номер телефону лише з цифр: alert( str.match(regexp).join('') ); // 17031234567 ``` From 57f4ced426b7c015b3d4f8f579e6d7275e6cdbac Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:44:48 +0300 Subject: [PATCH 06/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 4cfa2d9d7..02e4404bc 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -44,7 +44,7 @@ alert( str.match(regexp).join('') ); // 17031234567 : Пробільні символи: включає символ пробілу, табуляції `\t`, перенесення рядка `\n` і деякі інші рідкісні пробілові символи, що позначаються як `\v`, `\f` і `\r`. `pattern:\w` ("w" від англійского "word" означає "слово") -: Символ «слова» – літера латинського алфавіту, цифра або підчеркування `_`. Нелатинські літери (наприклад, кирилиця чи хінді) не належать до `pattern:\w`. +: Символ "слова" -- літера латинського алфавіту, цифра або символ підкреслення `_`. Нелатинські літери (наприклад, кирилиця чи хінді) не належать до `pattern:\w`. Наприклад, `pattern:\d\s\w` означає "цифру", за якою йде "символ пробілу", після якого йде "символ слова", наприклад `match:1 a`. From ebcba77bad703000900b45071e308a11e22a5626 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:44:59 +0300 Subject: [PATCH 07/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 02e4404bc..91a62862b 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -82,7 +82,7 @@ alert( "I love HTML5!".match(/\s\w\w\w\w\d/) ); // ' HTML5' : Не пробіл: будь-який символ, окрім `pattern:\s`, наприклад, літера. `pattern:\W` -: Будь-який символ, окрім `pattern:\w`, тобто не букви з латиниці, не знак підкреслення і цифра. +: Будь-який символ, окрім `pattern:\w`, тобто не букви з латиниці, не символ підкреслення і цифра. На початку розділу ми бачили, як створити номер телефону з рядка виду `subject:+1(703)-123-45-67`: знайти всі цифри та з'єднати їх. From 6dae35a32cf176a24b1380642cb205923ca446ae Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:45:14 +0300 Subject: [PATCH 08/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 91a62862b..f4ecb7fea 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -155,7 +155,7 @@ alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (збіг!) Шаблон `pattern:[\s\S]` буквально говорить: "пробіл АБО не пробіл". Іншими словами, "що завгодно". Ми могли б використати іншу пару додаткових класів, наприклад `pattern:[\d\D]`, це не має значення. Або навіть `pattern:[^]` -- оскільки це означає збіг будь-якого символу, крім нічого. -Також ми можемо використати цей спосіб, якщо хочемо, щоб обидва типи "крапок" були в одному шаблоні: наявний шаблон `pattern:.` крапки, який поводиться звичайним способом ("без нового рядка"), а також спосіб відповідності "будь-якому символу" з `pattern:[\s\S]` або подібним. +Також ми можемо використати цей прийом, якщо хочемо, щоб обидва типи "крапок" були в одному шаблоні: наявний шаблон `pattern:.` крапки, який поводиться звичайним чином ("без нового рядка"), а також відповідності "будь-якому символу" з `pattern:[\s\S]` або подібним. ```` ````warn header="Зверніть увагу на пробіли" From 3472351b60eec482127366e5d27f912d5bc3f839 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:46:31 +0300 Subject: [PATCH 09/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index f4ecb7fea..78475932a 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -159,7 +159,7 @@ alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (збіг!) ```` ````warn header="Зверніть увагу на пробіли" -Зазвичай ми приділяємо мало уваги пробілам. Для нас рядки `subject:1-5` і `subject:1-5` майже ідентичні. +Зазвичай ми приділяємо мало уваги пробілам. Для нас рядки `subject:1-5` і `subject:1 - 5` майже ідентичні. Але якщо регулярний вираз не враховує пробіли, він може не працювати. From 589559a5bb33415f09b26ea80d2aff0b459bc8bf Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:46:40 +0300 Subject: [PATCH 10/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 78475932a..3b3f1eaa0 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -161,7 +161,7 @@ alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (збіг!) ````warn header="Зверніть увагу на пробіли" Зазвичай ми приділяємо мало уваги пробілам. Для нас рядки `subject:1-5` і `subject:1 - 5` майже ідентичні. -Але якщо регулярний вираз не враховує пробіли, він може не працювати. +Але якщо регулярний вираз не враховує пробіли, він може не спрацювати. Спробуємо знайти цифри, розділені дефісом: From 0bbf8cc8fff8fb9a15c71d783757e5b1791322cd Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:46:56 +0300 Subject: [PATCH 11/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 3b3f1eaa0..84b0043a0 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -92,7 +92,7 @@ let str = "+1(703)-123-45-67"; alert( str.match(/\d/g).join('') ); // 17031234567 ``` -Альтернативний, коротший шлях – знайти нецифрові символи `pattern:\D` і видалити їх з рядка: +Альтернативний, коротший шлях -- знайти нецифрові символи `pattern:\D` і видалити їх з рядка: ```js run let str = "+1(703)-123-45-67"; From 1708c0322571d179414f0b0d43c6981e8ac22b55 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:48:06 +0300 Subject: [PATCH 12/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 84b0043a0..3f5dbf032 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -100,7 +100,7 @@ let str = "+1(703)-123-45-67"; alert( str.replace(/\D/g, "") ); // 17031234567 ``` -## Крапка – це будь-який символ +## Крапка -- це будь-який символ Крапка `pattern:.` – це спеціальний символьний клас, який відповідає "будь-якому символу, крім нового рядка". From 8548ca17829e397c0fc498b209b750bc4fd43cce Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:48:55 +0300 Subject: [PATCH 13/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 3f5dbf032..c9038d73d 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -102,7 +102,7 @@ alert( str.replace(/\D/g, "") ); // 17031234567 ## Крапка -- це будь-який символ -Крапка `pattern:.` – це спеціальний символьний клас, який відповідає "будь-якому символу, крім нового рядка". +Крапка `pattern:.` -- це спеціальний символьний клас, який відповідає "будь-якому символу, крім символу нового рядка". Наприклад: From dd02507ce523b50dc55131486f29ff4ba63004d6 Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 22:49:18 +0300 Subject: [PATCH 14/15] Update 9-regular-expressions/02-regexp-character-classes/article.md Co-authored-by: Stanislav --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index c9038d73d..810d9d23d 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -147,7 +147,7 @@ alert( "A\nB".match(/A.B/s) ); // A\nB (збіг!) ````warn header="Не підтримується в IE" Прапор `pattern:s` не підтримується в IE. -На щастя, є альтернатива, яка працює всюди. Ми можемо використовувати регулярний вираз, як-от `pattern:[\s\S]`, щоб відповідати "будь-якому символу" (цей шаблон буде описано в статті ). +На щастя, є альтернатива, яка працює всюди. Ми можемо використовувати регулярний вираз, як-от `pattern:[\s\S]`, щоб знаходити "будь-який символ" (цей шаблон буде описано в статті ). ```js run alert( "A\nB".match(/A[\s\S]B/) ); // A\nB (збіг!) From 85ac422fbbbb992f58540406cc0e12337e97e1cd Mon Sep 17 00:00:00 2001 From: Anton Burchak Date: Thu, 6 Oct 2022 23:50:58 +0300 Subject: [PATCH 15/15] Update article.md --- 9-regular-expressions/02-regexp-character-classes/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9-regular-expressions/02-regexp-character-classes/article.md b/9-regular-expressions/02-regexp-character-classes/article.md index 810d9d23d..34e3232e2 100644 --- a/9-regular-expressions/02-regexp-character-classes/article.md +++ b/9-regular-expressions/02-regexp-character-classes/article.md @@ -1,4 +1,4 @@ -# Character classes +# Символьні класи Розглянемо практичне завдання -- у нас є номер телефону типу `"+1(703)-123-45-67"`, і нам потрібно перетворити його на рядок тільки з чисел: `17031234567`.