我正在研究一种算法,该算法接受一个字符串作为输入,并反转该字符串的元音。
- 'hello' 应该返回为 'holle'
- “wookiE”应返回为“wEikoo”
str.replace
可以用作解决方案吗?
function reverseVowels(str) {
return str.replace(/[aeiou]/-g, /[aeiou]+1/);
}
我不确定 replace
函数的第二个参数是什么。我打算找到第一个元音,然后移动到下一个元音来替换它。这可以只用这个方法来完成,还是需要一个 forEach
/for
循环?
最佳答案
您可以分两个阶段执行此操作:
- 将元音提取到一个数组中
- 对原始字符串执行替换,在每次匹配时调用一个函数并从堆栈中弹出最后一个元音以替换它。
代码:
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);
关于javascript - 使用正则表达式反转字符串中的元音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170965/