3.5 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7db5367417b2b2512b95 | Встановлення відповідності одного символу з кількома можливостями | 1 | 301357 | match-single-character-with-multiple-possibilities |
--description--
Ви вивчили як використовувати літеральні шаблони (/literal/
) і шаблон спеціального символу (/./
). Це — крайнощі регулярних виразів, де одні мають точні збіги, а інші — збігаються з усім. Є варіанти, які є балансом між двома крайнощами.
Ви можете знайти літерний шаблон з деякою гнучкістю за допомогою character classes. Класи символів дозволяють визначити групу символів, які ви хочете зіставити, розмістивши їх у квадратних ([
і ]
) дужках.
Наприклад, ви хочете зіставити bag
, big
, і bug
але не bog
. Щоб зробити це, ви можете створити регулярний вираз /b[aiu]g/
. [aiu]
- це клас символів, який буде співпадати лише з символами a
, i
, або u
.
let bigStr = "big";
let bagStr = "bag";
let bugStr = "bug";
let bogStr = "bog";
let bgRegex = /b[aiu]g/;
bigStr.match(bgRegex);
bagStr.match(bgRegex);
bugStr.match(bgRegex);
bogStr.match(bgRegex);
По черзі чотири виклики match
повернуть значення ["big"]
, ["bag"]
, ["bug"]
, та null
.
--instructions--
Використайте клас символів голосних (a
, e
, i
, o
, u
) у вашому регулярному виразі vowelRegex
, щоб знайти усі голосні в рядку quoteSample
.
Примітка: не забудьте вказати голосні як верхнього, так і нижнього регістру.
--hints--
Ви повинні знайти всі 25 голосних.
assert(result.length == 25);
Ваш регулярний вираз vowelRegex
повинен використовувати клас символів.
assert(/\[.*\]/.test(vowelRegex.source));
Ваш регулярний вираз vowelRegex
повинен використовувати глобальний прапорець.
assert(vowelRegex.flags.match(/g/).length == 1);
Ваш регулярний вираз vowelRegex
повинен використовувати прапорець без урахування регістру.
assert(vowelRegex.flags.match(/i/).length == 1);
Ваш регулярний вираз не повинен збігатися з будь-якими приголосними.
assert(!/[b-df-hj-np-tv-z]/gi.test(result.join()));
--seed--
--seed-contents--
let quoteSample = "Beware of bugs in the above code; I have only proved it correct, not tried it.";
let vowelRegex = /change/; // Change this line
let result = vowelRegex; // Change this line
--solutions--
let quoteSample = "Beware of bugs in the above code; I have only proved it correct, not tried it.";
let vowelRegex = /[aeiou]/gi; // Change this line
let result = quoteSample.match(vowelRegex); // Change this line