文字列のケース形式を判定
命名規則を統一すると識別子やラベルを予測しやすくなりますが、ソースコード、設定、インポートデータ、生成コンテンツには表記の不一致が入り込むことがあります。この判定ツールは、ご入力いただいた文字をそのまま調べ、camelCase、PascalCase、snake_case、CONSTANT_CASE、kebab-case、Train-Case、dot.case、path/case、Title Case、Sentence case、単純な大文字形式または小文字形式のどれに従うかを返します。厳密かつ決定的に照合するため、同じ入力には必ず同じ結果が返り、曖昧または不規則な文字列は混在形式として明確に示されます。
無料で実行
判定ツールの検査内容をご確認ください
このツールは、入力全体を定義済みの命名パターンと比較します。大文字の数を数えるだけでも、区切り文字を一つ探すだけでもありません。camelCaseでは、小文字で始まり、途中に大文字で示される単語境界が少なくとも一つ必要です。PascalCaseは大文字で始まり、後続の単語を区切り文字なしで連結します。snake、constant、kebab、dot、pathの各形式では、空でない二つ以上の部分を、アンダースコア、ハイフン、ピリオド、スラッシュのいずれかで一貫して区切る必要があります。空白区切りの文字列については、Title Case、Sentence case、小文字単語列、大文字単語列を検査します。認識できた場合は、形式名と短い理由が返されます。句読点、統一されていない区切り、予期しない大文字、前後の空白によって完全一致しない場合は、誤解を招く推測をせず、混在形式と判定します。この厳密さにより、規則を本当に満たす文字列と、似ているだけの文字列を検証時に区別できます。多くの識別子部分では数字も使用できますが、空の入力や文字列以外の値は分類せず、無効な入力として拒否します。
厳密な判定を規則の検証にご活用ください
形式名は、繰り返し実行できる品質検査に組み込むと特に役立ちます。フォーム、データパイプライン、コード生成ツール、命名監査から得た識別子を送信し、返された形式をご利用のプロジェクトが要求する規則と比較してください。たとえば、APIフィールドではsnake_case、JavaScriptプロパティではcamelCaseが必要な場合があります。混在という結果は確認が必要であることを示しますが、このツールが入力を書き換えることはありません。判定と変換を分離することで、すでに参照されている公開名、データベース列、キーを自動検査が密かに変更する事態を防げます。応答には認識済みかどうかを示す真偽値も含まれるため、処理を簡単に分岐できます。対応する規則なら真、不規則な文字列なら偽です。厳密照合では先頭と末尾の空白も意味を持つため、識別子がシステムへ入る前に、コピー操作で生じた見えない問題を発見できます。多数の値を扱う場合は、項目ごとに一度呼び出し、元の値と検出形式を検証報告に保存してください。監査可能な結果となり、例外的な名前が意図的かどうかを担当者が判断できます。
境界と曖昧な入力の結果をご理解ください
入力が一語だけの場合、複数の形式名が重なる可能性があります。そのため、このツールは実用的な優先順位を使い、存在しない単語境界を推測しません。小文字一語はcamelCaseではなくlowercaseと返します。camel caseは通常、大文字で始まる連結部分を少なくとも一つ含むためです。同様に、大文字一語はCONSTANT_CASEではなくUPPERCASEです。複数語の区切り形式はより明確で、customer_order_idはsnake_case、CUSTOMER_ORDER_IDはCONSTANT_CASE、Customer Order IdはTitle Caseとなります。Sentence caseは先頭が大文字で、後続が空白区切りの小文字単語である必要があります。Title Caseでは各単語の先頭が大文字でなければなりません。頭字語が多い文字列、Unicode文字、アポストロフィ、コンマ、重複する区切り、snake-Caseのような組み合わせは、対応パターンに完全一致しなければ混在形式になります。この慎重な結果は意図的なものです。見慣れた形式名を推測すると、不正な識別子が検証を通過するおそれがあります。アルゴリズムはローカルかつ解析的で、ネットワーク、言語モデル、乱数、時刻依存の処理を使用しません。ブラウザーでも確認でき、APIによる自動化は項目ごとに$0.002です。
活用例
APIフィールド名を統一する
受信または生成されたフィールド名が、API契約で要求されるsnake_caseまたはcamelCaseに従うかをご確認いただけます。
設定キーを監査する
設定ファイルのキーを分類し、不統一な名前が環境間に広がる前に混在形式を検出していただけます。
生成された識別子を検証する
識別子を変更したり不正な境界を隠したりせず、コード生成結果を決定的に検査していただけます。
よくある質問
どのケース形式を認識できますか?
camelCase、PascalCase、snake_case、CONSTANT_CASE、kebab-case、Train-Case、dot.case、path/case、Title Case、Sentence case、小文字、大文字、小文字単語列、大文字単語列を認識します。
小文字一語がcamelCaseにならないのはなぜですか?
小文字一語には連結された単語境界がないため、lowercaseと判定します。camelCaseには、小文字の開始部分より後に少なくとも一つの大文字境界が必要です。
別のケース形式へ変換できますか?
いいえ。現在の形式だけを判定します。判定と変換を分けることで検証の安全性を高め、元の入力をそのまま保持します。
区切りや大文字が統一されていない場合はどうなりますか?
対応する規則に完全一致しないため、混在形式となり、認識済みの値は偽になります。
APIの料金はいくらですか?
APIリクエストごとに$0.002です。このページのブラウザー版はAPIを呼び出さずローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/detect-case \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"customerOrderId"}'const res = await fetch("https://api.kit.forhosting.com/str/detect-case", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "customerOrderId"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/detect-case",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "customerOrderId"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/detect-case", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"customerOrderId"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"customerOrderId"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/detect-case", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "customerOrderId"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.detect_case",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |