【JavaScript】padStart/padEndで文字列を指定長まで任意の文字で延長する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、JavaScriptで文字列が指定した長さになるように任意の文字で延長する方法をご紹介しています。
0埋めみたいに文字列が指定した長さになるようにお任意の文字で延長したいんだけど、良い方法ないかな?
上記の疑問にお答えします。
では、解説していきます。padStart/padEnd
padStart/padEnd は文字列が指定された長さになるように任意の文字で延長することができるメソッドです。
これらのメソッドはES2017からの使用することができます。標準ではIE11に対応していない状況ですが、後程ご紹介するポリフィルで対応可能ですので、ご安心ください。
padStart/padEndの構文は下記の通りです。
//padStart str.padStart(len, [,pad]) //padEnd str.padEnd(len, [,pad])
str
は文字列を指します。各メソッドの引数に指定してあるlen
とpad
にはそれぞれ下記を指定します。
len | 延長後の文字列の長さを指定する。str よりも短い数値を指定するとstr がそのまま返される。 |
pad | str を延長する任意の文字列を指定する。str がlen よりも長い場合、len の長さになるようにstr の前方もしくは後方にpad の文字を追加する。str よりもpad の文字列が長い場合は、pad の先頭もしくは末尾の文字列をstr に置き換える。 |
説明だけだと伝わりにくいと思いますので、一例ですが処理の実行結果を記載します。
padStart
padStartはstr
がlen
の長さになるように文字列の前方を延長します。
下記はstr
よりもlen
が長くなるように指定し、pad
に一文字だけ指定した場合の結果です。
const str = "123" console.log(str.padStart(5, 'a')) //実行結果 "aa123"
pad
の文字がlen
の長さになるまで延長されています。上記例ではpad
にaを指定していますが、他の文字や記号にしても同様の結果となります。
ちなみにstr
よりもpad
が長いと下記のようになります。
const str = "123" console.log(str.padStart(10, 'abcdefghij')) //実行結果 "abcdefg123"
padStartの場合はpad
の末尾からstr
の文字列に置き換えられます。他の部分ははpad
の文字列がそのまま表示される形となります。
padEnd
padEndはstr
がlen
の長さになるように文字列の後方を延長します。 前項と同じパターンを見てみましょう。
const str = "123" console.log(str.padEnd(5, 'a')) //実行結果 "123aa"
str
よりもpad
が長いパターンも同様です。
const str = "123" console.log(str.padEnd(10, 'abcdefghij')) //実行結果 "123abcdefg"
padStartは末尾から置き換えられ、padEndは先頭から置き換えられます。
下記のように覚えていてただければと思います。
padStart | 対象文字列が指定した長さになるように前方を延長する。 |
padEnd | 対象文字列が指定した長さになるように後方を延長する。 |
これで padStart/padEnd の使い方は完璧にマスターしました。ばっちりですね!
ポリフィルについて
Stringのポリフィルは下記のページで紹介されています。
padStart/padEndも上記のポリフィルに含まれています。使用する場合はファイルをダウンロードして、表示するページに読み込んでください。
簡単なサンプルですが、下記のように記述することで動作します。
<script src="string.polyfill.js"></script> <script> const str = "123" console.log(str.padStart(5, 'a')) </script>
IE11でpadStart/padEndを使いたい場合に試してみてください。
最後に
JavaScriptは進化を続けるプログラミング言語です。新しいプロパティやメソッドが追加され、より使いやすくなっていってます。技術に置いて行かれないように知識をアップデートするように心掛けていきましょう!
以上、JavaScriptのpadStart/padEndで文字列が指定長になるように任意の文字で延長する
JavaScriptを基礎からしっかりと学びたい方へ
下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。