魔法の呪文?JavaScriptの `padStart()` と `padEnd()` で文字列がピシッと揃う!
やあ、みんな!JavaScriptの世界へようこそ!フロントエンドの伝説、今日君たちを連れていくのは、ちょっとした「魔法」みたいなテクニックなんだ。
「え、魔法? JavaScriptでそんなことできるの?」って思った? そう、できるんだよ!
今日の主役は、文字列を「パディング」する `padStart()` と `padEnd()` という、とっても便利なメソッドなんだ。
パディングって、そもそも何?
「パディング」って言葉、初めて聞く人もいるかもしれないね。これは、文字列の「足りない部分を、指定した文字で埋めて、希望する長さに揃える」ことなんだ。
例えるなら、お気に入りのコレクションフィギュアを棚に並べる時、ちょっと隙間ができちゃったとする。その隙間を、可愛らしいミニチュアの箱とか、キラキラの装飾で埋めて、見た目をスッキリさせたい!…そんな感覚に似てるかな。
なんでパディングが必要なの?
「でも、なんでわざわざ文字列を揃える必要があるの?」って思うかもしれない。いくつか、実用的なシーンを想像してみよう。
- レシートの品名表示:
スーパーでお買い物をすると、レシートって品名が左揃えで、金額が右揃えで、きれいに並んでるでしょ? あれ、実はパディングの技術が使われているんだ。品名の文字数ってバラバラだから、そのまま並べると、金額の列がガタガタになっちゃう。それを、スペースとかで「パッ!」と揃えているんだ。
- ID番号の管理:
例えば、会員番号とか注文番号とか。これらを「0001」「0002」みたいに、常に4桁で表示したい時ってあるよね。もし「1」「2」ってなっちゃうと、桁がバラバラで管理しにくい。そこで、先頭に「0」を埋めて、常に4桁に揃えるんだ。
- UIデザインでの見た目調整:
Webサイトやアプリで、数字を並べて表示する時。例えば、ランキングの順位とか、時間の表示とか。見た目が揃っているだけで、グッとプロフェッショナルな印象になるんだ。
`padStart()`:左側をギュッと埋める!
さて、いよいよ本題の `padStart()` の登場だ!
この `padStart()` は、文字列の「最初(左側)」に、指定した文字を指定した長さになるまで埋めてくれるメソッドなんだ。
使い方はこんな感じ。
文字列.padStart(目標の長さ, 埋める文字);
- `目標の長さ`: 最終的にしたい文字列の長さを指定するよ。
- `埋める文字`: 足りない部分を埋めるために使う文字を指定するんだ。
例を見てみよう!
// 数値の ‘5’ を、常に3桁の文字列にしたい場合
let num = 5;
let paddedNum = String(num).padStart(3, ‘0’); // String(num) で数値 ‘5’ を文字列 ‘5’ に変換
console.log(paddedNum); // 出力: “005”
// ‘Hello’ という文字列を、目標の長さ10になるまで ” で埋めたい場合
let greeting = ‘Hello’;
let paddedGreeting = greeting.padStart(10, ”);
console.log(paddedGreeting); // 出力: “Hello”
どう? `padStart()` を使うと、あっという間に文字列が左側からきれいに埋まって、目標の長さに揃ったでしょ? まるで、粘土をこねて、形を整えるみたいだね。
`padEnd()`:右側をホッコリ埋める!
じゃあ、反対に「最後(右側)」を埋めたい時はどうする?
そんな時は、`padEnd()` の出番だ!
`padEnd()` は、その名の通り、文字列の「最後(右側)」に、指定した文字を指定した長さになるまで埋めてくれるんだ。
使い方も `padStart()` と似ているよ。
文字列.padEnd(目標の長さ, 埋める文字);
- `目標の長さ`: 最終的にしたい文字列の長さを指定するよ。
- `埋める文字`: 足りない部分を埋めるために使う文字を指定するんだ。
こちらも例を見てみよう!
// 数値の ‘123’ を、常に5桁の文字列にしたい場合
let id = 123;
let paddedId = String(id).padEnd(5, ‘ ‘); // 半角スペースで埋めてみる
console.log(paddedId); // 出力: “123 ” (末尾に半角スペースが2つ)
// ‘JavaScript’ という文字列を、目標の長さ15になるまで ‘-‘ で埋めたい場合
let language = ‘JavaScript’;
let paddedLanguage = language.padEnd(15, ‘-‘);
console.log(paddedLanguage); // 出力: “JavaScript—–”
`padEnd()` を使うと、今度は右側がきれいになったね。まるで、お皿に盛った料理の周りに、彩りでパセリを添えるような感じかな?
どっちを使えばいいの? 迷ったらココ!
`padStart()` と `padEnd()` 、どっちを使えばいいか迷うこともあるかもしれない。
そんな時は、「何のために文字列を揃えたいのか?」 を考えてみて。
- ID番号やコードなど、数値や記号が先頭に来るものを揃えたい → `padStart()` が得意!
- 品名や文章など、内容が左に来て、その後にスペースや記号を付けたい → `padEnd()` が得意!
例えば、さっきのレシートの例だと、品名(左側)はそのままにして、金額(右側)をスペースで埋めて右揃えにしているんだ。これは `padEnd()` の使い方が近いね。
よくある「つまずきポイント」と、その「大丈夫だよ!」
さて、ここで初心者の君たちが「あれ? うまくいかないぞ?」ってなりがちな、いくつかのポイントを先回りして解説しちゃうよ!
つまずきポイント1:数値をそのまま使おうとしていない?
`padStart()` や `padEnd()` は、あくまで「文字列」に対するメソッドなんだ。だから、数値のまま `123.padStart(5, ‘0’)` ってやろうとしても、エラーになっちゃう。
大丈夫だよ!
そんな時は、`String()` を使って、数値を文字列に変換してからメソッドを使えばOK!
let score = 85;
// String(score) で数値 85 を文字列 “85” に変換してから padStart() を使う
let formattedScore = String(score).padStart(4, ‘0’);
console.log(formattedScore); // 出力: “0085”
つまずきポイント2:目標の長さよりも、元の文字列が長い場合
もし、元の文字列が、指定した「目標の長さ」よりもすでに長い場合はどうなるんだろう?
大丈夫だよ!
`padStart()` も `padEnd()` も、そんな時は元の文字列をそのまま返してくれるんだ。余計な処理はしない、賢い子たちなんだよ。
let longString = “これはとても長い文字列です”;
let result = longString.padStart(5, ‘!’); // 目標の長さ5より元が長い
console.log(result); // 出力: “これはとても長い文字列です” (そのまま)
let shortString = “短”;
let result2 = shortString.padEnd(5, ‘?’); // 目標の長さ5より元が短い
console.log(result2); // 出力: “短????” (右側が埋まる)
テンプレートリテラルとの組み合わせで、もっと便利に!
JavaScriptには、文字列を扱うのに便利な「テンプレートリテラル」っていうのもあるんだ。これは、バッククォート( “ )で囲んで、` ${変数名} ` のようにして変数を埋め込めるやつだね。
このテンプレートリテラルと `padStart()` / `padEnd()` を組み合わせると、さらにコードがスッキリするんだ!
let item = ‘りんご’;
let price = 150;
let quantity = 3;
// テンプレートリテラルと padEnd() を使って、レシート風の表示を作る
let receiptLine = `${item.padEnd(10, ‘ ‘)}: ${String(price quantity).padStart(6, ‘ ‘)}円`;
console.log(receiptLine); // 出力: “りんご : 450円”
// 別の例:IDを左ゼロ埋めして表示
let userId = 7;
console.log(`ユーザーID: ${String(userId).padStart(5, ‘0’)}`); // 出力: “ユーザーID: 00007”
どう? `padEnd()` で品名を10文字に揃え、`padStart()` で金額を6桁(右揃え)に揃えることで、見やすい表示が簡単に作れたでしょ?
まとめ:パディングで、コードとUIをもっと美しく!
`padStart()` と `padEnd()` 、どうだったかな?
この二つのメソッドを使えば、
- 数値を固定長の文字列に変換する
- ID番号などをゼロ埋めする
- UI表示をきれいに揃える
といった、Web制作や開発でよくある「地味だけど、とっても大事な作業」が、驚くほど簡単に、そして美しくできるようになるんだ。
最初はちょっと戸惑うかもしれないけど、色々な場面で試してみてほしい。きっと、君のコードが、そして君が作る画面が、もっともっと洗練されていくはずだよ。
さあ、君も今日から「パディングマスター」だ! どんどんコードを書いて、JavaScriptの世界をもっと楽しんでいこう!

コメント