首页 > 解决方案 > 免费代码营中级算法脚本:Pig Latin Regex 解决方案

问题描述

我为猪拉丁语转换器找到了这个非常优雅的解决方案,但我似乎无法弄清楚它的正则表达式。替换上的“$&way”或“$2$1ay”。有人可以解释一下吗?

  function translatePigLatin(str) {
  return str
    .replace(/^[aeiou]\w*/, "$&way")
    .replace(/(^[^aeiou]+)(\w*)/, "$2$1ay");
}

// test here
translatePigLatin("consonant");

标签: regex

解决方案


似乎是“ freeCodeCamp 挑战指南:Pig Latin ”中的“解决方案 4 ”。该页面准确地解释了它的作用。

我想问题是关于$&, $2, ...的含义

  • $&是正则表达式匹配的整个字符串
  • $1是第一对括号中的部分
  • $2第二个括号
  • 等等

例如,请参见此处:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter


推荐阅读