JavaScriptで文字列操作第六弾です。
今回はJavaScriptで簡単にゼロパディングするメソッドをご紹介します。
ゼロパディングとは、指定した長さになるように文字列を埋めることです。
例えば、最大6桁の数字がランダムに入る場所の桁数を固定にしたいとき、とりあえず0を足して後ろから6桁取得するという方法があります。
// ランダムな数字を文字列化したもの
let num1 = "15";
let num2 = "123456";
// 6ケタに合わせる
// 一旦0を6ケタ分足して、後ろから6ケタを取得
console.log( ("000000" + num1).slice(-5) ); // 000015
console.log( ("000000" + num2).slice(-5) ); // 123456
ですが、以下の関数を使用すれば一旦0を足すなどの無駄な動きがなく、短い記述量でコーディングできます。
1.padStartメソッド
「対象の文字列.padStart(最終的な文字列の長さ,対象の文字列を延長するための文字列);」で対象の文字列が指定の文字数になるように、現在の文字列の先頭から指定した文字を埋めます。
// ランダムな数字を文字列化したもの
let num1 = "15";
let num2 = "123456";
// 6ケタに合わせる
// padStartを使う
console.log( num1.padStart(6, 0) ); // 000015
console.log( num2.padStart(6, 0) ); // 123456
// 第2引数を省略した場合は半角スペースで埋める
let num3 = "123";
console.log( num3.padStart(6) ); // " 123"
// 対象の文字列のほうが長い場合はそのまま返ってくる
let num4 = "12345";
console.log( num4.padStart(3) ); // "12345"
// 最終的な文字列長さよりも埋める文字列の方が長かったら、途中で切れる
let num5 = "1";
console.log( num5.padStart(5, "01234567") ); // "01231"
2.padEndメソッド
「対象の文字列.padEnd(最終的な文字列の長さ,対象の文字列を延長するための文字列);」で対象の文字列が指定の文字数になるように、現在の文字列の終端から指定した文字を埋めます。
// ランダムな数字を文字列化したもの
let num1 = "15";
let num2 = "123456";
// 6ケタに合わせる
// padEndを使う
console.log( num1.padEnd(6, 0) ); // 150000
console.log( num2.padEnd(6, 0) ); // 123456
// 第2引数を省略した場合は半角スペースで埋める
let num3 = "123";
console.log( num3.padEnd(6) ); // "123 "
// 対象の文字列のほうが長い場合はそのまま返ってくる
let num4 = "12345";
console.log( num4.padEnd(3) ); // "12345"
// 最終的な文字列長さよりも埋める文字列の方が長かったら、途中で切れる
let num5 = "1";
console.log( num5.padEnd(5, "01234567") ); // "10123"
参考:
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd