Используя replace и regex: я захватил c, но я хочу установить его в конце osonant плюс «ay» с заменой в Javascript - PullRequest
0 голосов
/ 27 апреля 2020

Вот ссылка: https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/pig-latin.

С помощью замены и регулярного выражения: я захватил c, но я хочу установить его в конце onsonant плюс ay с использованием функции replace в JavaScript

Вот мой код:

function translatePigLatin(str) {

  let regEx=/([bcd-fgh-klmn-pqrst-vwxyz])/i

  console.log(str.replace(regEx, '$1,'))


}

translatePigLatin("consonant");

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Свинья латынь - это способ изменения английских sh слов. Правила таковы:

  • Если слово начинается с согласного, возьмите первый согласный или группу согласных, переместите его в конец слова и добавьте к нему «ay» .

  • Если слово начинается с гласной, просто добавьте «путь» в конце.

Возможное решение:

function translatePigLatin(str) {
    if (!/[aeiou]/.test(str)) { // if it does not contain vowels
        return str + "ay";
    } else if (/^[aeiou]/.test(str)) { // if it starts with a vowel
        return str + "way";
    } else { // if it starts with a consonant and has vowels
        let regx = /(.*?)([aeiou])(.*)/i;
        return str.replace(regx, "$2$3$1ay");
    }
}

console.log(translatePigLatin("pig")); // igpay
console.log(translatePigLatin("rythm")); // rythmay
console.log(translatePigLatin("consonant")); // onsonantcay

Регулярное выражение /(.*?)([aeiou])(.*)/i означает:

(.*?) соответствует минимально возможным символам

([aeiou]), за которыми следует символ гласные и

(.*), за которыми следует остальная часть строки.

Используя скобки, мы создаем обратные ссылки $1, $2, $3, в которых будут храниться все эти значения для последующего использования с методом replace .

0 голосов
/ 27 апреля 2020

Посмотри, если ты этого хочешь

function translatePigLatin(str) {   
  let regx = /(.*?)([^aeiou])(.*)/i
  console.log(str.replace(regx, '$1$3ay$2'))
} 
  
translatePigLatin("consonant")

// output onsonantayc

Ваш вопрос немного размыт, если не добавить дополнительную информацию в комментарии

@ Отредактировано

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...