我刚开始学习JavaScript而且我被困在正则表达式中。该程序应该计算输入字符串中的元音数量并显示元音。
如果元音没有放在一起,程序运行正常但如果元音一起出现则不能给出正确的值。 例如" tree"。元音将显示为" 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
语句不起作用。请帮我解决。
答案 0 :(得分:3)
丢失+
- 您的表达式将连续元音组作为单个匹配。
var re = /[aeiou]/gi;
对于else
,如果没有匹配项(Vowels1
为null
),此行将失败:
if (Vowels1.length>=1)
此时,脚本停止执行,我们从不运行else
块。
所以改成它:
if (Vowels1 && (Vowels1.length > 0))
答案 1 :(得分:1)
试试这个方法
function getVowels(str) {
var m = str.match(/[aeiou]/gi);
return m === null ? 0 : m.length;
}