字符串前后补0达到指定数据长度

由于目前在做单片机应用,并且与蓝牙设备传递数据

我目前遇到的需求是,举例数组:[ 2001 ,0 ,4 ,10 , 100 ] 中的每项均需要转为16进制,

并且转成的16进制数据每项都需要是4个占位字符,如果不够需要前面加 0 来填充到四位

例如 2001.toString(16) = 7D1,就需要在前面加一个0变成07D1才可以

JS提供了这类方法可以使得字符串在前后添加指定字符用于填充长度

 

当给定数字位数不足8位时,则在左边补充0以补足8位数。

let num = 900;
let nStr = num.toString().padStart(8,'0');
console.log(nStr); //00000900

padStart()
用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。

语法

str.padStart(targetLength [, padString])

参数

targetLength:当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
padString (可选):填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "(U+0020)。
'abc'.padStart(10); // " abc"
'abc'.padStart(10, "foo"); // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0"); // "00000abc"
'abc'.padStart(1); // "abc"


padEnd()
用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。

语法,参数等同上

'abc'.padEnd(10); // "abc "
'abc'.padEnd(10, "foo"); // "abcfoofoof"
'abc'.padEnd(6, "123456"); // "abc123"
'abc'.padEnd(1); // "abc"
posted @ 2022-12-07 15:34  一抒山河  阅读(475)  评论(0编辑  收藏  举报