0
Words
0
Characters
0
No spaces
0
Lines
0
Paragraphs
0
Sentences
0 min
Reading time
Input text
Converted output

ケース変換ツール: UPPER, lower, Title, snake_case をオンラインで

テキストを貼り付け、ケースをクリックし、結果をコピーする。9 種類のケーススタイル、Unicode フルサポート、ブラウザの外には何も出ません。

ケース変換ツールとは?

テキスト全体を 9 種類のケーススタイル (UPPERCASE、lowercase、Title Case、Sentence case、snake_case、camelCase、PascalCase、kebab-case、CONSTANT_CASE) に変換する、ブラウザ内で動く無料ツールです。一度貼り付けて、欲しいケースをクリックし、結果をコピーするだけ。データは端末から外に出ません。

Excel の UPPERLOWERPROPER 関数と、Microsoft Word の「大文字と小文字の変換」メニューに、プログラマー向けのスタイル (lodash や npm の change-case パッケージで扱うようなもの) を加えたものとイメージしてください。UI は 1 つだけ、インストール不要です。

内部では String.prototype.toLowerCasetoUpperCase、そしてロケールを意識した畳み込みのために toLocaleLowerCase / toLocaleUpperCase を使います (Turkish I のドット、German ß、Greek 末尾シグマなど)。識別子スタイルは、各語を再ケーシングする前に単語境界 (_-、空白、小文字から大文字への遷移) で分割します。

変換が実際にどう動くか

9 種類のうち 2 つは純粋な文字変換です。UPPERCASE はブラウザのロケールで String.prototype.toLocaleUpperCase を呼び、lowercase は toLocaleLowerCase を呼びます。ロケール対応版が重要なのは、MDN の toLocaleUpperCase リファレンスがトルコ語の特殊ケースを記載しているためです: tr-TR では小文字の iİ (ドット付き) になり、大文字の Iı (ドットなし) になります。ロケール非対応版はトルコ語テキストでこれを誤ります。

Title Case と Sentence case はもう少し作業が要ります。Sentence case はすべて小文字にしてから、各文の最初の文字を大文字にします (.!? で分割)。Title Case は短い冠詞・前置詞・接続詞 (aantheandorofin など) を除き、各単語の先頭を大文字にします。タイトルの最初と最後の単語は常に大文字です。AP と Chicago スタイルは「どの前置詞を飛ばすか」で食い違いますが、ここでは妥当なデフォルトを採用し、リストは FAQ に記載しています。

5 つの識別子スタイル (snake_case、camelCase、PascalCase、kebab-case、CONSTANT_CASE) は同じ正規化器を共有します。テキストはアンダースコア、ハイフン、空白、ピリオド、または小文字から大文字への遷移のいずれかで単語に分割されます (userProfileNameuserprofilename に分かれます)。各単語を小文字化し、目的のセパレータとケース規則で再結合します。これは npm の change-case パッケージと同じ手法です。

ケース変換を 3 ステップで

ペイン 1 つ、クリック 1 回、結果 1 つ。サインアップもアップロードもありません。

  1. 1

    テキストを貼り付ける

    入力ペインにテキストを貼ります。短いフレーズ、CSV のヘッダー列、識別子、複数行の段落のいずれでも構いません。Sample ボタンを押すと、まず変換結果を並べて見たいときに小さな例が入ります。

  2. 2

    ケースボタンをクリック

    9 種類のスタイル (UPPERCASElowercaseTitle CaseSentence casesnake_casecamelCasePascalCasekebab-caseCONSTANT_CASE) からひとつ選びます。結果は出力ペインに即座に表示されます。元の入力は保持されるので、貼り直しなしで別のスタイルを試せます。

  3. 3

    結果をコピー

    Copy をクリックすると変換後のテキストがクリップボードに入ります。Download をクリックすれば .txt ファイルとして保存できます。どちらのボタンもローカルで動作し、何もアップロードされません。

ケース変換ツールが役に立つ場面

SQL 取り込み用に CSV のヘッダー列を整える

First NameDate Of BirthCustomer ID のようなヘッダーで書き出した表計算データを、Postgres は first_namedate_of_birthcustomer_id として欲しがります。ヘッダー行を貼って snake_case をクリックすれば、引用符なしで CREATE TABLE にそのまま入る、識別子としてきれいな形になります。

見出しを URL スラッグに

"Why We Switched from MongoDB to Postgres" のようなブログタイトルは、kebab-case で why-we-switched-from-mongodb-to-postgres になります。これは Google の URL 構造ドキュメントが推奨する URL 規約です。句読点は除去、空白はハイフン、ケースは正規化されます。見出しを貼って kebab-case をクリックし、CMS に貼り付けるだけ。

Python の識別子を JavaScript に改名

user_profile_namecreated_at を返す Python バックエンドのレスポンスフィールド名を、userProfileNamecreatedAt を好む TypeScript フロントエンドへ移しているとします。snake_case の識別子を貼って camelCase をクリックすれば、分割器がアンダースコア境界を正しく扱います。逆方向も同じ要領です。

レガシースキーマの SQL 識別子を整える

古い Oracle スキーマでは識別子が CONSTANT_CASE です: USER_PROFILE_NAMEORDER_LINE_ITEM_ID。Postgres の慣習はアンダースコア区切りの小文字。列リストを貼って snake_case をクリックすれば Postgres 向けの形になります。分割器は既存のアンダースコアを尊重するので、複数語の識別子も正しく分かれたままです。

本や曲のタイトル一覧に Title Case を適用

"the great gatsby"、"TO KILL A MOCKINGBIRD"、"Of mice And men" のように混在したケースのタイトルを集めたとします。貼り付けて Title Case をクリックすれば、冠詞や短い前置詞は小文字のまま正しく大文字化されたタイトルになります ("To Kill a Mockingbird")。Word の「大文字と小文字の変換」メニューを行ごとに開くより速いです。

全部大文字で叫ばれたメール返信を読み直す

サポート対応のスレッドに全部大文字で返事が来ました。メッセージを貼って Sentence case をクリックすると読みやすくなります: 各文の先頭は大文字、それ以外は小文字。Copy を押せば、人間が眉をひそめずに読めるかたちで返信できます。

ケーススタイル クイックリファレンス

このツールが提供する 9 つのスタイルと、知っておきたい Unicode の落とし穴を短くまとめています。例には適宜 <code>userProfileName</code> や "the quick brown fox" を使います。

TopicWhat this tool does
UPPERCASEすべての文字を大文字に。USERPROFILENAMETHE QUICK BROWN FOXString.prototype.toLocaleUpperCase を利用。SQL のキーワード、CSS の text-transform: uppercase、YAML 環境変数のデフォルト値などでよく使われます。
lowercaseすべての文字を小文字に。userprofilenamethe quick brown foxString.prototype.toLocaleLowerCase を利用。メールアドレス、ホスト名、大文字小文字を区別しない検索キーで使われます。
Title Case主要な単語の先頭を大文字に。短い冠詞・前置詞は小文字のまま。"The Quick Brown Fox Jumps Over the Lazy Dog"。タイトルの最初と最後の単語は常に大文字。AP と Chicago は 5 文字以上の前置詞の扱いで異なります。
Sentence case各文の先頭を大文字、それ以外は小文字。"The quick brown fox jumps over the lazy dog." .!? で分割します。叫び調の全大文字テキストの整形や、混在ケースの正規化に便利です。
snake_caseアンダースコアで結合し、すべて小文字。user_profile_name。Python の関数・変数の慣習 (PEP 8)。Postgres の識別子の慣習。Ruby、Rust、SQL の識別子でも一般的です。
camelCaseセパレータなしで結合、最初の単語は小文字、以降は大文字始まり。userProfileName。JavaScript と Java の変数・メソッドの慣習。多くの JS ネイティブ API の JSON オブジェクトキーで使われます。
PascalCaseセパレータなしで結合、最初を含めすべての単語を大文字始まり。UserProfileName。Java、C#、Python、Rust、TypeScript のクラス名の慣習。UpperCamelCase とも呼ばれます。
kebab-caseハイフンで結合し、すべて小文字。user-profile-name。CSS のセレクタやプロパティの慣習。URL スラッグの慣習 (Google が SEO で推奨)。仕様上の HTML 属性の慣習でもあります (DOM プロパティでは camelCase で公開されますが)。
CONSTANT_CASEアンダースコアで結合し、すべて大文字。USER_PROFILE_NAME。C、Java、JavaScript のコンパイル時定数の慣習。環境変数 (DATABASE_URLNODE_ENV) や SQL のキーワードでよく使われます。
Unicode の落とし穴Turkish のドット付き/なし I (iİIı)、German ß は大文字で SS、Greek 末尾シグマ ς は単語末でしか出ません。これらでは必ずロケール対応のメソッドを使ってください。概要は Wikipedia の「大文字と小文字」、識別子の歴史は Snake case / Camel case を参照してください。

ケース変換ツール: よくある質問

トルコ語、ドイツ語、ギリシャ語向けのロケール対応の変換に対応していますか?

はい。UPPERCASE と lowercase はブラウザのロケールで String.prototype.toLocaleUpperCasetoLocaleLowerCase を使います。トルコ語では iİ (ドット付き) に、Iı (ドットなし) になります。これは Unicode Technical Standard #21 の Unicode 規則によります。ドイツ語の ß は小文字ではそのまま、大文字では SS になります。ギリシャ語の末尾シグマ ς も正しく扱われます。

Title Case はどの単語をスキップするか、どう決めていますか?

Title Case は短い冠詞・前置詞・接続詞を小文字のままにします: aantheandorbutnorforofinonattobyasvs。タイトルの最初と最後の単語は常に大文字です。AP と Chicago は境界ケースで違います (Chicago は 5 文字以上の前置詞を大文字に、AP はしない)。混在入力で最も一貫した結果が得られるため、AP 寄りの短いリストを採用しています。

camelCase と PascalCase の違いは何ですか?

どちらも単語をセパレータなしでつなぎますが、最初の文字が違います。camelCase は最初の単語を小文字にします: userProfileName。PascalCase は最初の単語も含めて各単語を大文字化します: UserProfileName。慣習は言語ごとに異なります: Java はメソッドや変数で camelCase、クラス名で PascalCase。Python の PEP 8 は関数で snake_case、クラスで PascalCase。Google の JavaScript スタイルガイドはクラス以外すべてを camelCase にします。

命名規約をまたいでプログラミング識別子を変換できますか?

はい。5 つの識別子スタイル (snake_case、camelCase、PascalCase、kebab-case、CONSTANT_CASE) は同じ単語分割器を共有しており、アンダースコア、ハイフン、空白、ピリオド、小文字から大文字への遷移で分割します。したがって userProfileNameuser_profile_nameuser-profile-nameUSER_PROFILE_NAME はすべて同じ 3 単語に分かれ、5 つのスタイル間でクリーンに変換できます。これは npm の change-case パッケージや lodash の _.kebabCase 系の挙動と一致します。

Unicode や非 ASCII テキストは扱えますか?

はい。変換はロケール対応の文字列メソッドを使うので、アクセント付きラテン文字 (é、ñ、ü)、ギリシャ文字、キリル文字、Turkish のドット付き/なし I、German ß など、ほとんどの文字体系で正しく畳み込めます。case folding (等価比較用、例: String.prototype.normalize + 小文字化) と case mapping (表示用) の違いに注意: ここで行うのは case mapping です。ロケールをまたいだ等価比較には localeCompare{ sensitivity: 'base' } を渡す方が向きます。

入力にサイズ制限はありますか?

数 MB までは問題なく、1 秒もかからずに処理できます。10 MB を超えるとブラウザは重く感じ始めますが、これは出力ペインの再描画が長い文字列で高コストだからで、変換そのものが遅いわけではありません。それより大きなファイルは CLI を使ってください: bash の tr '[:upper:]' '[:lower:]'、Python の str.upper() / str.lower() / str.title()、表示専用なら CSS の text-transform プロパティもあります。

プライバシーと動作のしくみ

テキストはブラウザの外には出ません。すべての変換は JavaScript の String プロトタイプに組み込まれた標準の String メソッドを使い、お使いのマシンでローカルに実行されます。入力に対する分析もログも、サーバーへの往復もありません。私たちが従う Unicode 規則は Unicode Technical Standard #21 (Case Mappings) から来ており、これはブラウザエンジン自体が実装しているのと同じ標準です。