Yueseryueser.com

← ガイド一覧

小文字変換の使い方:表記統一と比較の前処理

React と react が混在したタグ一覧は扱いにくいものです。小文字に統一すれば、内容はそのままで比較しやすくなります。

ツールを開く:小文字変換

本当に必要になる場面

タグやキーワードの一覧は表記が揺れやすいところです。React と react が混ざると、絞り込みや重複削除では別の値として扱われます。小文字に揃えれば重なりが見えます。メール一覧や商品コードも同じです。

もう一つは比較です。大文字小文字だけが違う 2 つの文字列は等しくないと判定されるため、両方を小文字にしてから比べれば、違いが内容にあるのか表記にあるのか分かります。ドメイン名はもともと区別しないため、小文字にしても影響はありません。

失敗しない使い方

統一したい項目だけを変換し、文書全体をまとめて変換しないでください。英文では大文字に意味があります。文頭、固有名詞、NASA や PDF のような略語、iPhone のような製品名は、小文字にすると明確な誤りになります。

URL は特に注意が必要です。ドメインは区別しませんが、パスとクエリは多くのサーバーで区別されるため、/Images/Logo.png と /images/logo.png は別の資源になり得ます。小文字にすると 404 になります。パスワード、API キー、ハッシュ値も同様です。

代替手段と望ましい方法

見た目だけを揃えたいなら CSS の text-transform: lowercase が使えます。データは変わらず、検索やコピーは元の文字のままです。単語の先頭を大文字にしたいならタイトルケース変換、記号の幅を揃えたいなら全角半角変換の仕事です。

プログラムでは、データを書き換えるのではなく比較時に無視するのが定石です。SQL なら LOWER() や ILIKE、Python なら casefold()(ß などは lower() より適切)、JavaScript なら toLowerCase() で比較します。保存値の書き換えは痕跡が残りますが、比較方法の変更は残りません。

よくある質問

メールアドレスを小文字にしても大丈夫ですか?

ドメイン部分は区別しないため問題ありません。@ より前は規格上は区別可能ですが、実際に区別するサービスはほとんどありません。表示や重複削除には使えますが、認証情報は元のままにしてください。

URL を小文字にしたら開けなくなりました。どうすればいいですか?

ドメインは区別しませんが、パスやクエリは多くのサーバーで区別されます。Images と images が別資源のことがあるため、ドメインだけを小文字にし、パスは元のまま残してください。

大文字小文字を無視して比較するには?

保存値を書き換えず、比較のときだけ正規化します。SQL は LOWER()、Python は casefold()、JavaScript は toLowerCase() を使ってから比較してください。

関連ツール:小文字変換