Javascript 尝试我自己的string方法删除元音
我编写了这个函数来删除字符串中的小写元音。此函数不适用于某些字符串。如果字符串中有多个相同元音出现,则只删除一个元音。[编辑:很抱歉,我在下面的示例中放弃将“y”作为元音。]感谢您的帮助Javascript 尝试我自己的string方法删除元音,javascript,jquery,Javascript,Jquery,我编写了这个函数来删除字符串中的小写元音。此函数不适用于某些字符串。如果字符串中有多个相同元音出现,则只删除一个元音。[编辑:很抱歉,我在下面的示例中放弃将“y”作为元音。]感谢您的帮助 var string = "heelloo world"; var vowel = ["a", "e", "i", "o", "u"]; String.prototype.character = function name() { var i; for ( i = 0; i < vowe
var string = "heelloo world";
var vowel = ["a", "e", "i", "o", "u"];
String.prototype.character = function name() {
var i;
for ( i = 0; i < vowel.length; i++) {
var secondLoop = string.length;
for ( j = 0; j < secondLoop; j++) {
if (vowel[i] == string.charAt(j)) {
string = string.slice(0, j).concat(string.slice(j + 1, secondLoop));
}
}
}
}
string.character();
console.log(string);
//hello wrld
var string=“heelloo-world”;
变量元音=[“a”、“e”、“i”、“o”、“u”];
String.prototype.character=函数名(){
var i;
for(i=0;i<元音长度;i++){
var secondLoop=string.length;
对于(j=0;j
当您从字符串中删除一个字符时,将跳过循环中的下一个字符,因为该字符串现在短了一个字符,但指针(j
)仍指向相同的位置。删除字符时,需要减小计数器
var string=“heelloo-world”;
变量元音=[“a”、“e”、“i”、“o”、“u”];
String.prototype.character=函数名(){
var i;
for(i=0;i<元音长度;i++){
var secondLoop=string.length;
对于(j=0;j console.log(字符串)代码>在代码中,在第二个嵌套循环期间,当循环在下一次迭代中递增时,它已通过元音的第二个实例,即循环为2,但第二个元音为1。当concat's split strings触发if条件时,尝试从循环控制变量secondLoop中减去1?我认为最好的解决方法是简单地使用正则表达式替换:
String.prototype.character=function(){
返回此。替换(/[aeiou]+/g',);//将a、e、i、o和u替换为零。
}
函数提交(){
var input=document.getElementById('input')。值;
document.getElementById('output').innerHTML=input.character();
}
走代码>我只需要使用一个好的旧正则表达式
var string=“heelloo world”;
变量元音=[“a”、“e”、“i”、“o”、“u”]
试试这个:
var string = "heelloo world";
var vowel = ["a", "e", "i", "o", "u"];
var new_string = "";
var safe = "";
for (x = 0; x < string.length; x++)
{
var removeChar = false;
for (y = 0; y < vowel.length; y++)
{
if (string[x] == vowel[y] && safe != vowel[y])
{
if (string[x+1] == vowel[y])
{
safe = vowel[y];
removeChar = true;
}
else
safe = "";
break;
}
}
if (!removeChar)
{
new_string += string[x];
var isVowel = false;
for (y = 0; y < vowel.length; y++)
{
if (string[x] == vowel[y])
{
isVowel = true;
break;
}
}
if (!isVowel)
safe = "";
}
}
alert(new_string);
var string=“heelloo-world”;
变量元音=[“a”、“e”、“i”、“o”、“u”];
var new_string=“”;
var-safe=“”;
对于(x=0;x
这将产生“hello world”。此代码工作不正常。例如,若我将“heellooworld”传递给var字符串,结果是“hellowrld”。最后的输出仍然有元音。@Joetje50:阅读帖子就足以找出问题所在。“而且它对某些字符串不起作用”。哇,看起来有人试图建造一座核电站来点亮一个灯泡……当y是元音而u不是元音时呢?是的。。。。但是试着用自己的方法。。。谢谢你…谢谢你。。。工作完美。。。
var string = "heelloo world";
var vowel = ["a", "e", "i", "o", "u"];
var new_string = "";
var safe = "";
for (x = 0; x < string.length; x++)
{
var removeChar = false;
for (y = 0; y < vowel.length; y++)
{
if (string[x] == vowel[y] && safe != vowel[y])
{
if (string[x+1] == vowel[y])
{
safe = vowel[y];
removeChar = true;
}
else
safe = "";
break;
}
}
if (!removeChar)
{
new_string += string[x];
var isVowel = false;
for (y = 0; y < vowel.length; y++)
{
if (string[x] == vowel[y])
{
isVowel = true;
break;
}
}
if (!isVowel)
safe = "";
}
}
alert(new_string);