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`. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy