用javascript计算元音

use*_*469 1 javascript string

我用这段代码来搜索和计算字符串中的元音,

a = "run forest, run";
a = a.split(" ");
var syl = 0;
for (var i = 0; i < a.length - 1; i++) {
    for (var i2 = 0; i2 < a[i].length - 1; i2++) {
        if ('aouie'.search(a[i][i2]) > -1) {
            syl++;
        }
    }
}

alert(syl + " vowels")
Run Code Online (Sandbox Code Playgroud)

显然它应该提醒4个元音,但它返回3.出了什么问题以及如何简化它?

Nie*_*sol 5

试试这个:

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

|确保没有边缘的情况下,例如在串的开始或末端具有元音.