javascript正则表达元音

时间:2016-05-11 18:45:50

标签: javascript regex

我正在研究一种算法,该算法接受一个字符串进行输入并反转字符串的元音。 STR ='你好'应该回归' holle' STR =' wookiE'应该返回' wEikoo'

我想知道的是你能使用str.replace吗?

      function reverseVowels(str){
       return str.replace(/[aeiou]/-g,/[aeiou]+1/);
}

我不确定替换函数的第二个参数是什么。我在想的是找到第一个元音,然后转到下一个元音替换它。这可以通过这种方法完成,还是需要forEach / for循环?

1 个答案:

答案 0 :(得分:8)

您可以分两个阶段完成此操作:

  • 将元音提取为数组
  • 对原始字符串执行替换,在每个匹配项上调用一个函数,然后从堆栈中弹出最后一个元音来替换它。

代码:

function reverseVowels(str){
   var vowels = str.match(/[aeiou]/g);
   return str.replace(/[aeiou]/g, () => vowels.pop());
}

// example
var original = 'James Bond';
var result = reverseVowels(original);

// output for snippet
console.log(original + ' => ' + result);