JavaScriptでゼロパディングとゼロサプレス

JavaScriptでゼロパディングとゼロサプレス:


ゼロパディングとゼロサプレス

ゼロパディング・ゼロサプレスとは、

ゼロパディング 【 zero padding 】 ゼロ埋め / ゼロサプライ / 前ゼロ

ゼロパディングとは、数値を文字として表現・表示する際に、指定された桁数に足りない分だけ左右に「0」を追加する処理のこと。決まった長さ(固定長)の文字列に変換したいときに行われる。

ゼロサプレス (zero suppress)

これとは逆に、「0012.3400」を「12.34」にするといったように、先頭あるいは末尾の余分な「0」を削除したり空白で置き換え、数値としての本来の表記に戻す処理のことは「ゼロサプレス」(zero suppress)という。ゼロパディングと意味を取り違えやすいので注意が必要である。


JavaScriptでゼロパディング

String.prototype.padStart()を使います。

String.prototype.padStart()

str.padStart(targetLength [, padString])

パラメーター
targetLength

現在の文字列の延長後の長さ。パラメーターが現在の文字列の長さよりも短い場合、現在の文字列が返される。
padString Optional

現在の文字列を延長するための文字列。この文字列が長すぎる場合、切り捨てられて、左の部分が適用されます。 このパラメーターの既定値は、" " (U+0020) です。

戻り値

現在の文字列の先頭に延長が適用された String
// 例:'1234567'をゼロパディング 
const padded = '1234567'.padStart(8, '0') 
console.log(padded) // '01234567' 


JavaScriptでゼロサプレス

様々な方法があると思いますが、今回は簡単なのでLodashのtrimStartを使います。

Lodash trimStart

_.trimStart([string=''], [chars=whitespace])

Removes leading whitespace or specified characters from string.

Arguments

[string=''](string): The string to trim.

[chars=whitespace](string): The characters to trim.

Returns

(string): Returns the trimmed string.
// 例:'01234567'をLodashのtrimStartでゼロサプレス 
const trimmedString = trimStart('01234567', '0'); 
console.log(trimmedString); // '1234567'  


LodashのpadStartを使ったゼロパディング

ちなみにLodashのpadStartを使ってもゼロパディングができます。

Lodash padStart

_.padStart([string=''], [length=0], [chars=' '])

Pads string on the left side if it's shorter than length. Padding characters are truncated if they exceed length.

Arguments

[string=''](string): The string to pad.

[length=0](number): The padding length.

[chars=' '](string): The string used as padding.

Returns

(string): Returns the padded string.
// 例:'1234567'をLodashのpadStartでゼロパディング 
const paddedString = padStart('1234567', 8, '0'); 
console.log(paddedString); // '01234567' 

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)