Yueseryueser.com

← ガイド一覧

ケバブケースへの変換方法:URL・CSS・ファイル名での使い方

ケバブケースは小文字の語を 1 つのハイフンでつなぐ表記で、user-profile のように書きます。URL のパス、CSS のクラス名、HTML の属性、npm のパッケージ名、静的ファイル名はおおむねこの形です。

ツールを開く:ケバブケース変換

ハイフンを使う場面

ブログや多言語サイトでは、記事のタイトルを URL のパスに変えます。user profile settings は /user-profile-settings/ になります。手で書くとハイフンが 1 つ多い、末尾に残るといったことが起き、公開後に // や末尾の - が別の URL として扱われます。

もう一つは CSS のクラス名とファイル名をまとめて決める場合です。product card は product-card になり、対応する画像やアイコンも product-card-icon に揃います。スタイルシートと素材フォルダを同時に改名するときは、1 つの規則のほうが 1 件ずつ確認するより確実です。

変換の規則と 3 つの確認点

規則は、まず「小文字か数字 + 大文字」の境界で語を分割し、全体を小文字にし、英数字以外の連続を 1 つのハイフンにまとめ、両端のハイフンを削除するという流れです。User Profile、user_profile、userProfile はどれも user-profile になり、途中に空の要素は残りません。

確認点は 3 つです。1 つ目、ハイフンは語の間にだけ入るべきで、a--b や末尾の - が見えたら入力に連続した記号があった証拠です。2 つ目、漢字は削除されるため、日本語サイトの英語スラッグは先に翻訳が必要です。3 つ目、CSS のクラス名は数字で始められないため、2col は col-2 に直します。

URL でハイフンが使われる理由

出典の明確な違いです。Google の検索向けドキュメントは、ハイフンを語の区切りとして扱い、アンダースコアは扱わないと説明しています。/user-profile が 2 語として読まれるのはこのためで、多くの CMS が既定でハイフンを使う理由でもあります。

限界も明確です。ハイフンは JavaScript の変数名に使えず、引き算として解釈されるため、obj['user-name'] のように文字列キーとしてしか扱えません。ファイル名としては問題ありませんが、大文字小文字の扱いは環境で異なります。URL の中ではハイフンも下線もそのままで使え、エスケープは不要です。

よくある質問

URL にはハイフンと下線のどちらを使うべきですか?

ハイフンを優先してください。Google はハイフンを語の区切りとして扱い、下線は区切りとして扱わないと明示しています。そのため /user-profile のほうが 2 語として認識されやすくなります。多くのサイト制作ツールや CMS も既定でハイフンを使います。

ケバブケースは変数名にそのまま使えますか?

使えません。JavaScript、Python、Java などの識別子にハイフンは含められず、引き算として解析されます。obj['user-name'] のように文字列キーにするか、コードに入れる前に camelCase や snake_case へ変換してください。

変換結果にハイフンが 2 つ並ぶのはなぜですか?

入力にもともと連続した区切りがあったためです。a - b や a--b では、記号が 1 つにまとまったあと両側の境目が残ります。ツールは意味を判断しないので、変換後に先頭、末尾、連続するハイフンを確認し、必要なら手で削除してください。

関連ツール:ケバブケース変換