ケース変換ツール
Hello Worldを大文字にするとHELLO WORLDになり、同じテキストをタイトルケースからcamel、snake、kebabまで9つのスタイルに切り替えられます。HTMLParser2もhtml、parser、2にきれいに分かれます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello World
- スタイル
- 大文字
- 結果
- HELLO WORLD
camel snake title ブラウザで無料
9 つのケースモード
mode は 9 つの値のいずれかです。upper と lower は JavaScript の toUpperCase と toLowerCase にそのまま対応します。title は文字列を空白の連なりで分割し、各単語の最初の文字を大文字にして残りを小文字にし、単語間の正確な空白を保ちます。
sentence はまずすべてを小文字にし、次に最初の Unicode 文字と、ピリオド・疑問符・感嘆符の後の最初の文字を大文字にしますので、複数文からなる段落に対して頑健です。残りの 5 つのモードはプログラマの識別子スタイルです。
camel は最初のトークンを小文字にして残りを PascalCase にし、pascal はすべてのトークンを大文字始まりにし、snake と kebab は小文字化したトークンをアンダースコアまたはハイフンで連結し、constant は大文字化したトークンをアンダースコアで連結します。要求した mode は常にそのまま応答に返ります。
トークナイザが識別子をどう分割するか
5 つの識別子モードでは、text はまずトークン化されます。文字列がすでに空白・アンダースコア・ハイフンを含む場合、それらの文字の連なりで分割されます。各トークンは英数字以外の文字がすべて取り除かれ、空のトークンは落とされます。
区切り文字がない場合、トークナイザは代わりに camelCase の内部と数字の周りの境界を検出します。小文字か数字と大文字の間、頭字語の連なりと後続の大文字始まりの単語の間、数字列の両側に区切りを挿入します。
活用例
見出しの整形
CMS の見出しに title または sentence のケースを適用し、編集者が打ち直すことなく一貫した大文字化を得られるようにします。
スラッグの生成
商品名を URL スラッグやファイル名のために kebab-case に変え、句読点を自動的に取り除きます。
よくある質問
どのケーススタイルに対応していますか?
9 つです。 upper・lower・title・sentence・camel・pascal・snake・kebab・constant です。
camelCase の入力をどう分割しますか?
区切り文字がないとき、ケースの変化と数字の境界で区切りますので、myVar2 は my・var・2 にトークン化されます。
タイトルケースとセンテンスケースの違いは何ですか?
タイトルケースは各単語の最初の文字を大文字、残りを小文字にし、単語間の空白はそのまま保ちます。センテンスケースはすべて小文字にしてから、文頭と、ピリオド、疑問符、感嘆符の後の最初の文字を大文字にします。
商品名からページのアドレス用の文字列を作れますか?
作れます。kebabを選ぶと、単語が小文字になってハイフンでつながり、余分な記号は取り除かれます。ページのアドレスやファイル名にそのまま使えます。
snakeとkebabを行き来すると情報は失われますか?
英数字だけの単語なら失われません。コード向けのスタイルはすべて同じ方法で単語を区切るため、アンダースコアとハイフンの間で名前を何度変換しても元に戻せます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/case-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello_world","mode":"camel"}'const res = await fetch("https://api.kit.forhosting.com/text/case-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello_world",
"mode": "camel"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/case-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello_world",
"mode": "camel"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/case-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello_world","mode":"camel"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello_world","mode":"camel"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/case-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "hello_world",
"mode": "camel"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.case_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
テキストの文字列を 9 つのケーススタイル — upper・lower・title・sentence・camel・pascal・snake・kebab・constant — のいずれかに変換し、元の mode・text・変換結果を JSON として返します。
9 つのケースモード
ツールは 2 つの必須フィールド text と mode を受け取ります。
トークナイザが識別子をどう分割するか
ですので HTMLParser2 は html・parser・2 に分割され、snake は html_parser_2 を、constant は HTML_PARSER_2 を生みます。同じトークナイザがすべての識別子モードに供給されるため、素の英数字の単語について snake_case と kebab-case の間の変換は損失がなく、余計な句読点が識別子に漏れ出ることは決してありません。
検証・上限・出力の形
検証は変換の前に実行されます。入力は素のオブジェクトでなければなりません。text は文字列、mode は 9 つの列挙値のいずれかでなければならず、そうでなければ型のないクラッシュではなく問題のフィールド名を示す型付きの invalid_input エラーを送出します。text は 100000 文字が上限で、それより長いものは拒否されますので、1 つの過大なペイロードがブラウザのタブや Worker を止めることはできません。成功時、応答はちょうど 3 つのキー — mode・text・result — を持つ安定した JSON オブジェクトで、要求した mode と元の text を変換した文字列と並べて返しますので、後続のコードは 2 度目の呼び出しなしに両方をログしたり差分を取ったりできます。この変換は純粋に決定的です。
連携の活用例
識別子の正規化
データ移行の際に、データベースの列名や JSON のキーを camelCase・snake_case・CONSTANT_CASE に一括で変換します。
技術的な質問
長さの上限はありますか?
はい、text は 100000 文字が上限です。それより長い入力は invalid_input を返します。
応答には何が含まれますか?
mode・text・result を持つ JSON オブジェクトです。同じ入力は常に同じ出力を生みます。
無料ですか?
ブラウザでは無料です(tier A)。API は前払いの KIT 残高で $0.002 から使い、失敗したタスクは課金されません。