数値のゼロ埋め(桁を揃える)
「00123」のように数字の先頭に「0」を付けて桁を揃えるには、String.padStart
メソッドを使用することで実現できます。
String.padStartメソッドは揃えたい数字.padStart(桁数, 埋める文字)
という感じで指定します。
第一引数の桁数は、揃えたい数字の桁数以下や負の数が指定された場合は、揃えたい数字そのままを返します。
JavaScript
const num = 123;
console.log(num.toString().padStart(5, '0')); // 00123
console.log(num.toString().padStart(3, '0')); // 123
console.log(num.toString().padStart(2, '0')); // 123
従来の方法
String.padStart
メソッドを使用しない方法として、次のように関数化して作ることができます。
関数定義
JavaScript (ES5)
/**
* 数値のゼロ埋め(桁を揃える)
* @param {number|string} number 対象の数字
* @param {number} digit 桁数
* @return {string} ゼロが埋められた数字を返す
*/
var zeroPadding = function(number, digit) {
var fillNumber = digit - String(number).length;
return fillNumber > 0 ? (new Array(fillNumber + 1).join(0)) + number : number;
};
JavaScript (ES6以降)
/**
* 数値のゼロ埋め(桁を揃える)
* @param {number|string} number 対象の数字
* @param {number} [digit=0] 桁数
* @returns {string} ゼロが埋められた数字を返す
*/
const zeroPadding = (number, digit = 0) => {
const fillNumber = digit - String(number).length;
return fillNumber > 0 ? '0'.repeat(fillNumber) + number : number;
};
簡単な解説(ES5の場合)
引数の桁数から対象の数字の桁数を引いて、さらに1を足した数をnew Array
の引数に指定して配列を生成します。
生成した配列をjoinメソッドを使用し"0"で結合します。
結合した0の文字を対象の数字と結合することで、ゼロ埋め(ゼロパディング)を実現します。
簡単な解説(ES6以降の場合)
引数の桁数から対象の数字の桁数を引いて、その数をstring.repeat
メソッドで0を繰り返します。
結合した0の文字を対象の数字と結合することで、ゼロ埋め(ゼロパディング)を実現します。
使い方
JavaScript (ES5)
var result = zeroPadding( num, digit );
JavaScript (ES6以降)
const result = zeroPadding( num, digit );
引数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
num | number | 桁を揃える数値 |
第二引数 必須 |
digit | number | 桁数 |
戻り値
ゼロが埋められた数字の文字列を返します。
JavaScript (ES5)
var result = zeroPadding(1234, 6);
alert(result); // 001234
JavaScript (ES6以降)
const result = zeroPadding(1234, 6);
console.log(result); // 001234