2016-10-22 22 views
1

JavaScriptで大文字と小文字を変換するコードを作成します。は大文字と小文字を変換します。

たとえば、 'Hi、Stack Overflow。' ----> 'hI、sTACK OVERFLOW'

どうすればいいですか?

+0

を使用して、このシンプルなソリューションを試すことができますが何かをしようとしたのですか? –

答えて

3

あなたはそれが小文字でいた場合に大文字またはそれはどちらも(それはカンマ、コロン、などの場合)だ場合であるとしてそれを取るために、各文字の上で実行し、それが大文字でいた場合に小文字にそれをひそかできます

str = 'Hi, Stack Overflow.'; 
res = ''; 
for (var i = 0; i < str.length; ++i) { 
    c = str[i]; 
    if (c == c.toUpperCase()) { 
    res += c.toLowerCase(); 
    } else if (c == c.toLowerCase()) { 
    res += c.toUpperCase(); 
    } else { 
    res += c; 
    } 
} 
+0

もう少し高度な解決策については、この回答を参照してください:http://stackoverflow.com/a/38703925/1743938 –

+0

一般的に(文字列にアクセスすることによって)文字列を直接変更することは考慮されていません。通常は配列に変換し(パラメータを指定せずに.split()を使用する)、配列全体を繰り返し、.join()で文字列を再構成することをお勧めします。ちょうどアイディアとして。 –

0

あなたのためにこれを行います機能:

function reverseCase(input) { 
    var output = [] 
    for(var char in input) { 
     var character = input[char] 
     if(character == character.toUpperCase()) 
      output.push(character.toLowerCase()) 
     else 
      output.push(character.toUpperCase()) 
    } 
    return output.join('') 
} 
+0

私の場合、この関数は型エラーを引き起こします。あなたはすでにそれをテストしましたか? –

+0

はい、私はちょうどそこにタイプミスがありました。 http://codepen.io/LewisYearsley/pen/RGEzXA?editors=1010 – Lew

0

var hi = 'Hi, Stack Overflow.'; 
 

 
var hI = hi.split(""); 
 
for(var i=0;i<hI.length;i++){ 
 
if(hI[i] == hI[i].toLowerCase())hI[i] = hI[i].toUpperCase(); 
 
else if(hI[i] == hI[i].toUpperCase())hI[i] = hI[i].toLowerCase(); 
 
} 
 
hI = hI.join(""); 
 
alert(hI); 
 
//'hI, sTACK oVERFLOW'

0
var input = 'Hi, Stack Overflow.' 
var arr = input.split(' '); 

alert(arr); 
var output = arr.map(function(elem){ 

    return (elem[0].toLowerCase() + elem.substring(1,elem.length).toUpperCase()); 

}); 

alert(output.join()); 
2

あなたはmap()

var a = 'Hi, Stack Overflow!' 
 

 
var ans = a.split('').map(function(c){ 
 
    return c === c.toUpperCase() 
 
    ? c.toLowerCase() 
 
    : c.toUpperCase() 
 
}).join('') 
 

 
console.log(ans)

0
<!DOCTYPE html> 
<html> 
<head> 
<title>hello</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
</head> 
<body> 

<script> 
$(document).ready(function(){ 
    var x = 'Hi, Stack Overflow.'; 

    alert(caseAlter(x)); 

    function caseAlter(txt){ 
     var output = ""; 

     for(var i = 0; i < txt.length; i++){ 
      if(txt[i] == txt[i].toUpperCase()){ 
       output += txt[i].toLowerCase(); 
      }else{ 
       output += txt[i].toUpperCase(); 
      }   
     } 

     return output; 
    } 

}); 
</script> 
</body> 
</html> 
関連する問題