javascript - 使用 JavaScript 将字符串中的元音替换为其在字符串中的索引

标签 javascript arrays regex loops

我需要用字符串中的索引 + 1 替换字符串中的每个元音。 (函数名称 = vowel2index)
输出示例:

 vowel2index('this is my string') == 'th3s 6s my str15ng'

我希望这个例子展示了我正在尝试做的事情。我试过如下使用替换方法:

  str.replace(/[aeiou]/gi, str.indexOf(/[aeiou]/gi);

但这并没有解决问题。我也尝试了下面的代码,但我无法弄清楚从 IF 语句到哪里(我还没有使用数组元音):

 function vowel2index(str) {
 let vowels = ["a", "e", "i", "o", "u"];
 let arr = [];
 for(i = 0; i < str.length; i++){
     if (str[i] === /[aeiou]/gi) {
        arr.push(str.replace(str[i], indexOf(str[i])+1));
     }

感谢任何帮助。仅供引用,此问题来自代码战。

最佳答案

你快到了。 .replace 函数 accepts an offset parameter包含当前匹配项的索引,因此您可以只使用 replacer 函数,并返回该偏移量加一。不需要元音数组,只需要使用模式中的元音字符集:

function vowel2index(str) {
  return str.replace(/[aeiou]/gi, (vowel, offset) => offset + 1);
}
console.log(vowel2index('this is my string')); // == 'th3s 6s my str15ng');

关于javascript - 使用 JavaScript 将字符串中的元音替换为其在字符串中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53531239/

相关文章:

javascript - 如果有值则自动提交表单

javascript - 为什么非贪婪角色不行动 'non-greedy' ?

java - 测试字符串中的数字字符

javascript - 将对象转换为带下划线的数组

javascript - 将数组添加到数组数组

Python Excel 列数组变量

regex - 提取 Haskell 中特定类型的所有出现

javascript - AngularJS 和 Thymeleaf 之间的冲突

javascript - 希望在 Bootstrap 中为列设置相同的高度 - 没有表格

javascript - 使用 CoffeeScript 删除数组的重复元素