padStart と padEnd の基本
JavaScript の String#padStart()
および String#padEnd()
メソッドを使うと、指定した文字数になるまで文字列を拡張してくれます。
どのような文字で埋め合わせるかは、第 2 引数で指定します。
第 2 引数に 2 文字以上の文字列を指定すると、各文字が順番に使われます。
const s = "ABC";
console.log(s.padStart(10, "xyz")); //=> "xyzxyzxyzxABC"
使用例
byte 数値を二進数文字列にする(8 桁になるまで 0 パディング)
function toBinaryString(byteNum) {
return byteNum.toString(2).padStart(8, "0");
}
console.log(toBinaryString(0)); //=> "00000000"
console.log(toBinaryString(3)); //=> "00000011"
console.log(toBinaryString(255)); //=> "11111111"
コンソール出力用の右寄せ(スペースでパディング)
function alignRight(s) {
return s.padStart(5); // デフォルトでスペースでパディングされます
}
console.log(alignRight("AAA")); //=> " AAA"
console.log(alignRight("BBBB")); //=> " BBBB"
console.log(alignRight("CCCCC")); //=> "CCCCC"
console.log(alignRight("DDDDDD")); //=> "DDDDDD"
末尾の 4 文字以外を隠す(カード番号や電話番号などに)
function hideAllButTheEnd(s) {
const last4Chars = s.slice(-4);
const maskedStr = last4Chars.padStart(s.length, "*");
return maskedStr;
}
const cardNumber = "2034399002125581";
console.log(hideAllButTheEnd(cardNumber)); //=> "************5581"
ちなみに上記のコードは、MDN の padStart()
のドキュメント で紹介されているものです。