javascript - 如何从字符串中删除所有元音并使用 for 循环返回结果?

标签 javascript string

<分区>

我想编写一个函数,它接受一个字符串并返回一个使用 for 循环删除所有元音的新字符串。我尝试过使用各种字符串方法,但没有成功。

到目前为止,这是我的代码的样子:

function disemvowel(string) {
  let newString = "";
  for (let i = 0; i < str.length; i++) {
    if (string[i] != "a" && string[i] != "e" && string[i] != "i" && string[i] != "o" && string[i] != "u") {
      return newString += string[i];
    };
  };
};

更新 这个问题不是重复的。这是我一直在寻找的解决方案。

function disemvowel(string) {

  let vowels = {
    'a': true,
    'e': true,
    'i': true,
    'o': true,
    'u': true
  };

  let result = "";

  for (let i = 0; i < string.length; i++) {
    let letter = string[i].toLowerCase();
    if (!vowels[letter]) {
      result += string[i];
    }
  };
  return result;
};

最佳答案

最简单的方法是使用正则表达式替换函数:

function removeVowels( input ){
    return input.replace(/[aeiouAEIOU]/g, "");
}

备注:该函数不检测input是否为String,此处假设为String。

正如 Jonas Wilms 所指出的,通过在正则表达式中使用 i(忽略大小写)标志可以以更短的方式实现相同的目的:

function removeVowels( input ){
    return input.replace(/[aeiou]/gi, "");
}

关于javascript - 如何从字符串中删除所有元音并使用 for 循环返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53144030/

相关文章:

javascript - 如何在检测到浏览器关闭事件时显示自定义弹出窗口?

c++ - std::wstring 不适用于 std::map<const wchar_t*, const char*> 的 [] 运算符

java - 如何将逗号分隔的字符串转换为字符串,每个字符串都用单引号括起来并用逗号分隔

java - 如何使字符串在数字之间包含 ':' 仅避免在任何字符 java 之前或之后的 ':'?

java - Java 中的正则表达式和字符串数组

javascript - JQuery $.post 函数在 Firefox 中有效,但在 IE 中无效

javascript - React JS Ajax 数据循环

javascript - Angularjs 周围有哪些工具/项目/集成?

javascript - 获取谷歌浏览器的根书签文件夹

python - 提取两个特殊字符之间的字母数字字符串