「大文字変換」ユーティリティは何のために使うのか
まずイメージからいきます。
次のような値があるとします。
"abc"
"Abc"
"ABC"
人間から見ると「だいたい同じ」ですが、コンピュータ的には全部別物です。
検索、比較、ID 判定などで「大文字・小文字の違いを無視したい」場面はとても多いです。
そこで使うのが「大文字変換」ユーティリティです。
「一旦全部大文字にそろえてから比較・検索する」ことで、
大文字・小文字の揺れを吸収できます。
JavaScript 標準の toUpperCase の基本
いちばんシンプルな使い方
JavaScript の文字列には、標準で toUpperCase メソッドがあります。
const s = "abc";
const upper = s.toUpperCase();
console.log(upper); // "ABC"
JavaScriptもう少し例を増やすと:
"Abc".toUpperCase(); // "ABC"
"abc123".toUpperCase(); // "ABC123"
"hello-world".toUpperCase(); // "HELLO-WORLD"
JavaScriptポイントはシンプルで、
英字 → 大文字に変換される
数字・記号・日本語 → そのまま
という動きです。
"テストabc123".toUpperCase(); // "テストABC123"
JavaScript日本語には影響しません。
業務でよくある「大文字変換」の使いどころ
大文字・小文字を区別しない比較
例えば、「ユーザー ID は大文字・小文字を区別しない」という仕様だとします。
const input = "abc";
const stored = "ABC";
if (input === stored) {
// false になってしまう
}
JavaScriptここで「大文字変換」を挟みます。
const input = "abc";
const stored = "ABC";
if (input.toUpperCase() === stored.toUpperCase()) {
// true になる
}
JavaScript「比較する前に両方とも大文字にそろえる」
これが大文字変換ユーティリティの一番基本的な使い方です。
検索キーワードの正規化
検索機能でも、「abc」と「ABC」を同じものとして扱いたいことが多いです。
const keyword = "AbC";
const normalized = keyword.toUpperCase();
// normalized を使って検索
JavaScriptデータベース側も、検索対象のカラムを大文字に変換して比較するか、
あらかじめ大文字で保存しておく、などの工夫を組み合わせます。
自前ユーティリティとして wrap する意味
null や undefined にも優しくしておく
そのまま str.toUpperCase() を呼ぶと、str が null や undefined のときにエラーになります。
業務コードでは、入力が「必ず文字列」とは限らないので、
小さなユーティリティにしておくと安全です。
function toUpper(value) {
if (value == null) return "";
return String(value).toUpperCase();
}
JavaScript使い方はこうです。
toUpper("abc"); // "ABC"
toUpper("Abc123"); // "ABC123"
toUpper(null); // ""
toUpper(123); // "123"
JavaScript「とりあえず文字列として扱いたい」という場面では、
このくらい防御的にしておくと安心です。
「全部大文字にする」と「一部だけ大文字にする」
全部大文字にするパターン
ここまでは「文字列全体を大文字にする」話でした。
ID、コード、検索キーなどは、これで十分なことが多いです。
toUpper("user01"); // "USER01"
JavaScript先頭だけ大文字にする(キャメルケース風)
「見た目を整える」目的で、
先頭だけ大文字にしたいこともあります(例: 名前の表示など)。
function capitalize(word) {
if (!word) return "";
const s = String(word);
return s.charAt(0).toUpperCase() + s.slice(1);
}
capitalize("taro"); // "Taro"
capitalize("yamada"); // "Yamada"
JavaScriptここでのポイントは、
「全部大文字」ではなく「先頭だけ大文字」という別パターンもある
用途によってどちらを使うかを決める
ということです。
どこで大文字変換をかけるか(設計の話)
ここが一番大事なところです。
大文字変換は、「意味を変えない範囲で揺れを吸収する」ためのものです。
なので、基本的にはこう考えるとバランスが良いです。
比較・検索・照合 → 事前に大文字(または小文字)にそろえる
保存する値 → どちらかに統一しておく(例: すべて大文字で保存)
例えば、ユーザー ID を扱うときに、
保存時に toUpper して DB に入れる
検索時も toUpper してから照合する
と決めておけば、
「大文字・小文字の揺れ」を気にしなくて済みます。
逆に、表示用の文字列(名前、文章など)に対して
無条件に大文字変換をかけるのは危険です。
ユーザーの意図した表記を壊してしまう可能性があるからです。
小さな練習で感覚をつかむ
コンソールでいくつか試してみてください。
"abc".toUpperCase();
"AbC123".toUpperCase();
"テストabc".toUpperCase();
toUpper(null);
toUpper("user01");
JavaScriptどの文字がどう変わるか、日本語には影響しないこと、
null でも落ちないことを確認してみてください。
そのうえで、自分のプロジェクトに
export function toUpper(value) { ... }
JavaScriptを一つ置いて、
「大文字・小文字を無視したい比較や検索の前には必ずここを通す」
というルールにしてみてください。
それができた瞬間、あなたの文字列処理は
「なんとなく比較している」状態から
「意図を持って正規化してから比較している」状態に一段レベルアップします。
