我刚刚开始学习JavaScript,并且陷入了正则表达式中。该程序应该计算输入字符串中的元音数量并显示元音。

如果元音未放置在一起,则程序运行正常,但如果元音在一起显示,则无法给出正确的值。例如“树”。元音将显示为“ ee”,计数为1。

Type a word here : <input type="text" id="word1">
<input type="button" value="Vowels" onclick="Vowels()">


function Vowels(){
  var String1 = document.getElementById('word1').value;
  var re = new RegExp(/[aeiou]+/gi);
  var Vowels1 = String1.match(re);
  alert(Vowels1);
  if (Vowels1.length>=1)
  {
    alert("The number of vowels are:" + Vowels1.length);
  }
  else
  {
    alert("No vowels in the word");
  }
}


请帮助我找到正确的正则表达式,并且else语句不起作用。请帮助我修复它。

最佳答案

只需丢失+,您的表情就是将一组连续的元音作为一次匹配。

var re = /[aeiou]/gi;


至于else,如果没有匹配项(Vowels1null),则此行将失败:

if (Vowels1.length>=1)


到那时,脚本停止执行,并且我们从不运行else块。

因此将其更改为:

if (Vowels1 && (Vowels1.length > 0))

09-25 18:28