Files

3.5 KiB
Raw Permalink Blame History

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