#regex
#регулярное выражение
Вопрос:
Я нашел это действительно элегантное решение для pig latin converter, но, похоже, я не могу разобраться с регулярным выражением к нему. «$ amp;way» или «$ 2 $ 1ay» при замене. Не мог бы кто-нибудь объяснить это, пожалуйста?
function translatePigLatin(str) {
return str
.replace(/^[aeiou]w*/, "$amp;way")
.replace(/(^[^aeiou] )(w*)/, "$2$1ay");
}
// test here
translatePigLatin("consonant");
Комментарии:
1. не могу понять, в чем вопрос
Ответ №1:
Кажется, это «Решение 4» из «Руководства по решению задач freeCodeCamp: Pig Latin«. На странице точно объясняется, что он делает.
Я предполагаю, что вопрос заключается в значении $amp;
, $2
, …
$amp;
является ли вся строка, которая была сопоставлена с регулярным выражением$1
является ли часть в первой паре круглых скобок$2
вторые круглые скобки- и т.д.
Смотрите, например, здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter
Комментарии:
1. Я все еще в замешательстве с этим решением