JavaScriptで文字列内の文字が大文字か小文字かを判定する方法
JavaScriptで文字列内の文字が大文字か小文字かを判定したい場合、最もシンプルな方法は、対象の文字を大文字・小文字にそれぞれ変換し、元の文字と比較することです。文字が変換後も変わらなければ、その文字はすでに該当するケースであると判断できます。
基本的な考え方
判定には以下のメソッドを利用します。
- toUpperCase(): 文字を大文字に変換します。変換しても元の文字と一致すれば、それは大文字です。
- toLowerCase(): 文字を小文字に変換します。変換しても元の文字と一致すれば、それは小文字です。
- isNaN(): 引数が数値として解釈できない場合に true を返すため、文字が数字かどうかのチェックにも使えます。
コード例
function checkCase(ch) {
// 数値の場合は「numeric」と返す
if (!isNaN(ch * 1)) {
return 'ch is numeric';
} else {
// 大文字に変換しても変わらない場合は大文字
if (ch == ch.toUpperCase()) {
return 'upper case';
}
// 小文字に変換しても変わらない場合は小文字
if (ch == ch.toLowerCase()) {
return 'lower case';
}
}
}
console.log(checkCase('a'));
console.log(checkCase('A'));
console.log(checkCase('1'));
実行結果
このコードを実行すると、コンソールには次のように出力されます。
lower case upper case ch is numeric
処理の流れを解説
この関数は、引数として渡された1文字に対して、以下の順序で判定を行います。
- 数値のチェック:
ch * 1の結果が NaN でなければ、その文字は数字として扱えるため「ch is numeric」を返します。 - 大文字のチェック:
ch.toUpperCase()の結果が元の文字と一致すれば、その文字はすでに大文字なので「upper case」を返します。 - 小文字のチェック:
ch.toLowerCase()の結果が元の文字と一致すれば、その文字は小文字なので「lower case」を返します。
注意点
この方法は英字1文字の判定に適しています。ただし、数字や記号は大文字・小文字の区別を持たないため、toUpperCase() でも toLowerCase() でも変化しません。そのため、実用的なコードでは、最初に正規表現などで英字かどうかを確認してからケース判定を行うと、より堅牢な処理になります。また、複数文字の文字列を扱う場合は、charAt() や配列化によって1文字ずつ取り出して判定してください。
-
【JavaScript】補助変数を1つだけ使って文字列を反転させる方法
本記事では、任意の文字列が与えられたときに、補助用の変数をたった1つだけ使って、その文字列を反転させた結果を生成するJavaScriptプログラムを紹介します。 課題の条件 このプログラムには、以下のような厳しい制約が課されています。 組み込み関数(split() や reverse() など)や、独自に定義したカスタム関数を宣言・使用してはならない 使用してよいのはバニラJS(素のJavaScript)のみで、必要であれば基本的なループ構文を利用できる つまり「関数呼び出しに頼らず、ロジックを自分で組み立てる」ことが求められる練習問題です。 実装コード 上記の条件を満たすコードは以下のと
-
JavaScriptで2進数のビットに合わせて文字列の大文字と小文字を入れ替える方法
問題 文字列 str と数値 n を引数に受け取り、n を使って文字列を変換する JavaScript 関数を作成します。 数値 n の各ビットは、文字列中の英字ごとの処理を決定します。 ビットが 1 の場合 … 対応する英字の大文字と小文字を入れ替える ビットが 0 の場合 … 元の文字のまま変更しない n の最後のビットまで使い切ったら、再び先頭のビットに戻って同じ処理を繰り返します。最終的に、変換後の新しい文字列を返却してください。 コード例 const str = hey there; const num = 21; const swapCase = (str = , num =