我刚刚开始学习 JavaScript,却陷入了正则表达式的困境。该程序应该计算输入字符串中元音的数量并显示元音。
如果元音没有放在一起,程序运行良好,但如果元音出现在一起,则不会给出正确的值。e.g.“树”。元音将显示为“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
,当没有匹配项时,此行将失败(并且Vowels1
is null
):
if (Vowels1.length>=1)
此时,脚本停止执行,我们永远不会运行else
block.
所以将其更改为:
if (Vowels1 && (Vowels1.length > 0))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)