javascript - 如何在 JavaScript 中检查元音?

标签 javascript regex

我应该编写一个函数,它接受一个字符(即长度为 1 的字符串),如果它是元音则返回 true,否则返回 false。我想出了两个函数,但不知道哪一个性能更好以及我应该更喜欢哪种方式。使用 RegEx 的方法要简单得多,但我不确定是否应该尝试避免使用 RegEx?

没有正则表达式:

function isVowel(char) {
  if (char.length == 1) {
    var vowels = new Array("a", "e", "i", "o", "u");
    var isVowel = false;

    for (e in vowels) {
      if (vowels[e] == char) {
        isVowel = true;
      }
    }

    return isVowel;
  }
}

使用正则表达式:

function isVowelRegEx(char) {
  if (char.length == 1) {
    return /[aeiou]/.test(char);
  }
}

最佳答案

benchmark

我认为你可以有把握地说 for 循环更快。

我确实承认正则表达式在代码方面看起来更干净。如果这是一个真正的瓶颈,那么使用 for 循环,否则出于“优雅”的原因坚持使用正则表达式

如果你想简单一点,那么就使用

function isVowel(c) {
    return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1
}

关于javascript - 如何在 JavaScript 中检查元音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488028/

相关文章:

javascript - 提交按钮在 Bootstrap 表单中不起作用

javascript - 将javascript转换为 Dart

javascript - Arcgis Esri map : Collect pictureMarkerSymbols info on area select

javascript - JS正则表达式组合

c# - 使用C#从XML检索文本

regex - 如何在没有 Cargo 的情况下在 Rust 中使用正则表达式?

javascript - 如何在 JavaScript 中快速播放声音文件的多个副本

asp.net - Ajax 请求 : application/x-www-form-urlencoded params

regex - postgres regexp_replace 只想允许 a-z 和 A-Z

javascript - 正则表达式匹配仅包含特定字符的整个单词