Javascriptで大文字と小文字を変換するコードを作りたいです。
たとえば、「こんにちは、スタックオーバーフロー」。 ----> 'hI、sTACK oVERFLOW'
どうすればいいですか?
各文字に目を通し、大文字の場合は小文字に、小文字の場合は大文字に、どちらでもない場合はそのまま(コンマ、コロンなどの場合)に変換できます。
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;
}
}
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)
<!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>
あなたのためにこれを行う関数:
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('')
}
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'
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());