J'essaie d'écrire une fonction javascript qui reçoit une chaîne, et compte le nombre de voyelles. Affichage du nombre de voyelles, ainsi que du total général. Cela fonctionne bien si chaque voyelle est dans la chaîne, mais si par exemple il n'y a pas de A ou d'E, elle retournera null.Javascript regex match coming null
Y at-il un moyen que je puisse intercepter cela et remplacer les valeurs nulles par 0? Ou y a-t-il un moyen plus efficace d'y parvenir? Merci à tous ceux qui peuvent aider!
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>
Ouais, 'match' est assez ennuyeux de cette façon. J'essaierais une approche différente: écrire un 'count de fonction (chaîne, lettre)' qui compte le nombre d'instances de 'letter' dans' string', et l'appeler avec 'count (inString, 'a')', ' count (inString, 'e') ', etc. Vous pouvez sauvegarder chacun d'entre eux et les additionner pour obtenir le nombre total de voyelles. – Ryan
Au lieu de '/ [a]/gi', vous pouvez utiliser'/a/gi'. Cela ne résoudra pas votre problème, mais c'est un peu plus propre ... – Cerbrus