我正在尝试编写一个接收字符串的javascript函数,并计算元音的数量。显示每个元音的数量,以及总数。如果每个元音都在字符串中,它会正常工作,但如果例如没有A或E,它将返回null。Javascript正则表达式比赛即将推出null
有没有办法我可以截取这个并用null替换null?还是有更高效的方法来实现这一目标?感谢任何能够帮助的人!
function countVowels(inString) {
return outString = (
"Total vowels: " + inString.match(/[aeiou]/gi).length +
"\nTotal A's: " + inString.match(/[a]/gi).length +
"\nTotal E's: " + inString.match(/[e]/gi).length +
"\nTotal I's: " + inString.match(/[i]/gi).length +
"\nTotal O's: " + inString.match(/[o]/gi).length +
"\nTotal U's: " + inString.match(/[u]/gi).length
);
}
<form>
Enter a string to count its vowels. <br>
<input type="text" id="inString"><br>
<button type="button" onclick="console.log(countVowels(inString.value))">Count vowels</button>
</form>
呀,'match'是一种恼人的方式。我会尝试一种不同的方法:编写一个'函数计数(字符串,字母)'来计算'string'中'letter'的实例数,并用'count(inString,'a')',' count(inString,'e')'等等。你可以保存每一个并将它们加在一起得到元音的总数。 – Ryan
而不是'/ [a]/gi',你可以使用'/ a/gi'。这不会解决你的问题,但它有点清洁...... – Cerbrus