仍然没有工作 - 功能:写下一个字母(即a-> b)和大写元音

时间:2014-01-15 23:16:13

标签: javascript regex for-loop unicode alphabet

我一直得到“类型错误:str.join不是函数。这段代码应该采用字符串输入并使输入中的每个字母成为下一个字母(即a-> b,z-> a并且将每个元音都大写。有谁知道为什么它仍然是错的?

str = str.split("");//split() string into array
  for(var i=0;i<str.length;str++){//for loop that checks each letter
    if(str[i].match(/[a-y]/i)){
      str[i]=String.fromCharCode(str[i].charCodeAt(0)+1);
        }else if(str[i].match('z')){
          str[i] = 'a';
        }
    if(str[i].match(/[aeiou]/i)){
       str[i] = str[i].toUpperCase();
       }

  }
   str2= str.join('');
  //modifies letter by adding up in alphabet
  //capitalizes each vowel
  //join() string


  return str2; 
}

// keep this function call here 
// to see how to enter arguments in JavaScript scroll down

2 个答案:

答案 0 :(得分:3)

当你应该递增str时,你会不小心递增i

for(var i=0;i<str.length;str++){//for loop that checks each letter
                          ^---// replace str with i

我不知道你的其余代码是否有效,但这可以解释这个特定的错误。

答案 1 :(得分:1)

在循环的开头,您有for(var i=0;i<str.length;str++){,将其更改为for(var i=0;i<str.length;i++){(您基于不存在的迭代进行循环)