返回字符串中元音数量的函数

时间:2016-11-22 12:07:28

标签: javascript

if(string[i] === "a" || string[i] === "e" || string[i] === "i" || string[i] === "o" || string[i] ==="u"){}

我正在编写一个带字符串的函数,并返回该字符串中元音的数量。

上面的代码就是我用来比较每个字母以查看它是否是一个元音。它奏效了。

然而,代码对我来说似乎非常混乱。但我不知道如何更好地写它。有没有更简洁的方法来编写这段代码?

3 个答案:

答案 0 :(得分:2)

您可以使用简单的RegEx来完成它,并将其与String原型结合使用:

String.prototype.countVowels = function()
{
  var vowels = this.match(/[aeiou]/gi);
  return (vowels === null) ? 0 : vowels.length;
}

然后使用:

调用它
var vowels = 'abcdefghijklmnopqrstu'.countVowels(); // Returns 5.

RegEx由@JamesThrope提供。

答案 1 :(得分:1)

function getAllVowels(string) {
  var m = string.match(/[aeiou]/gi);
  return m === null ? 0 : m.length;
}

OR

var syl = ("|"+a+"|").split(/[aeiou]/i).length-1;

Refer

答案 2 :(得分:0)

为什么不使用object来检查和计算

var count = {
    a: 0,
    e: 0,
    i: 0,
    o: 0,
    u: 0
}

使用in operator

if (string[i].toLowerCase() in count) {
    count[string[i].toLowerCase()]++;
}