我正在尝试使用JavaScript,我的浏览器拒绝执行我使用switch case函数编写的程序.目标是找到一个字符串中的元音数量(考虑所有都以小写字母输入)
当我点击"提交"按钮时,框中的文字消失但没有任何反应.警报"你好"也没有出现,所以我假设该功能甚至没有被执行.
<html>
<head>
<script>
function vow(form)
{
alert("hello");
var a = new Array(10);
a = form.t1.value;
var flag = 0;
var i;
for(i=0;i<10;i++)
{
switch (a[i])
{
case 'a':
flag++;
break;
case 'e':
flag++;
break;
case 'i';
flag++;
break;
case 'o';
flag++;
break;
case 'u';
flag++;
break;
}
}
alert(flag);
}
</script>
</head>
<body>
<form>
<input type="text" name="t1">
<input type="submit" value="SUBMIT" onClick="vow(this.form)"/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你正在使用;而不是:.
case 'i';
__^__
Run Code Online (Sandbox Code Playgroud)
同样的情况o和u.
我还展示了一个(内存密集型)替代版本:
var count = input.match(/[aeiou]/gi).length;
Run Code Online (Sandbox Code Playgroud)
var vow = function(str) {
var matches = str.match(/[aeiou]/gi);
var count = matches ? matches.length : 0;
alert("'" + str + "' contains " + count + " vowel(s)");
return false;
}? ?
Run Code Online (Sandbox Code Playgroud)
<input type="submit" value="SUBMIT" onClick="return vow(this.form.t1.value)"/>
Run Code Online (Sandbox Code Playgroud)
您可以更简单地做到这一点.例如,从输入中删除元音并检查与原始字符串相比的长度差异.
var count = input.length - input.replace(/[aeiou]/gi, '').length;
Run Code Online (Sandbox Code Playgroud)
编辑:甚至更简单,删除除元音之外的所有内容;-)
function vow(form) {
alert(form.t1.value.replace(/[^aeiou]/gi, '').length);
}?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12255 次 |
| 最近记录: |