字符串前后补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"