我想使用两个for循环并使用charAt
所以如果我在文本框中输入“Banana”,它将仅显示“aaa”
#textbox
=文本框
#lbl
= label(结果显示的位置)
这就是我所拥有的,而且它无法正常工作......
$("#vow").click(function () {
var vowels = "aeiou";
var v = $("#textbox").val();
var label = $("#lbl").html(v);
for (i = 0; i < vowels.length; i++) {
vowels.charAt(i) == v.charAt(j);
for (j = 0; j < v.length; j++) {
label = v;
}
}
});
答案 0 :(得分:2)
使用
Array#filter
而不是String#split
,然后使用Array#join
!
var v = 'aeiou';
var input = 'Banana';
var splitted = v.split('');
var op = input.split('').filter(function(item) {
return splitted.indexOf(item) > -1;
}).join('');
console.log(op);
&#13;
答案 1 :(得分:2)
&#34;简单&#34;代码(至少要阅读):
var vowels = "aeiou";
var label = "banana";
var stripped = "";
for (i = 0; i < label.length; i++) {
if(vowels.indexOf(label[i]) >= 0) stripped += label[i];
}
console.log(stripped);
但我建议你简单地使用:
"banana".replace(/[^aeiouy]/ig, "")
我是正则表达式,其中说:&#34; 将所有不属于aeiouy
的内容替换为&#34;。我和g是标志:i
=不区分大小写,g
=全局(替换所有出现次数)
答案 2 :(得分:0)
function isVowel(c) {
return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1
}
function getVowels(input) {
var result = "";
for (var i = 0; i < input.length; i++) {
if (isVowel(input.charAt(i))) {
result = result.concat(input.charAt(i) + "");
}
}
return result;
}
$("#vow").click(function() {
var input = $("#textbox").val();
$("#outputBox").val(getVowels(input));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="textbox" />
<button id="vow">Get Vowels</button><output id="outputBox" />
&#13;
答案 3 :(得分:0)
尝试使用replace
功能
$("#vow").click(function () {
var v = $("#textbox").val();
$("#vowels").html($("#textbox").val().replace(/[^aeiou]/g, ''));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="textbox" />
<button id="vow">Get Vowels</button>
<p id="vowels"></p>
&#13;