我想使用两个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;
}
}
});
发布于 2016-06-28 09:09:08
“简单”代码(至少阅读):
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, "")
我是一个regex,它说:“把所有不是aeiouy
的东西都替换成零”。I和g是标志:i
=不区分大小写,g
=全局(替换所有出现的)
发布于 2016-06-28 09:06:08
使用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);
发布于 2016-06-28 09:07:57
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));
});
<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" />
https://stackoverflow.com/questions/38082187
复制