2016-06-28 9 views
0

我想用两个for循环和使用charAt所以,如果我把“香蕉”,在文本框中它只会显示“AAA”只打印字符串元音从文本

#textbox =文本框

#lbl =标签(这里的结果将显示)

这是我拥有的,它不能正常工作...

$("#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; 
     } 
    } 
}); 

回答

1

“简单” 的代码(至少阅读):

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, "") 

我是一个正则表达式,上面写着:“ 将所有不是aeiouy之一的东西全部替换为“。我和g是标志i =不区分大小写,g =全局(全部替换)

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);

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)); 
 
}); 
 
<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" />

0

尝试使用replace功能

$("#vow").click(function() { 
 
    var v = $("#textbox").val(); 
 
    $("#vowels").html($("#textbox").val().replace(/[^aeiou]/g, '')); 
 
});
<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>