如何拆分带小数的十六进制字符串为单个字节并截断小数部分?
十六进制字符串拆分解决方案
要实现需求,只需三步处理:提取整数部分、补前导零保证字节格式、按两位拆分并拼接,具体代码和说明如下:
实现代码
const string = "3E8.8F5C28F5C28"; // 提取小数点前的十六进制整数部分 const integerPart = string.split('.')[0]; // 补前导零,确保字符串长度为偶数(单个字节对应两位十六进制) const paddedPart = integerPart.length % 2 === 1 ? '0' + integerPart : integerPart; // 按每两位十六进制字符拆分 const byteArray = paddedPart.match(/[\dA-Fa-f]{2}/g); // 用空格拼接成目标格式 const result = byteArray.join(' '); console.log(result); // 输出:03 E8
代码说明
- 提取整数部分:通过
split('.')[0]直接截取小数点前的内容,彻底丢弃不需要的小数部分。 - 补前导零:单个字节必须对应两位十六进制字符,若原整数部分长度为奇数(如示例中的
3E8是3位),则在开头补零,确保拆分后每个元素都是完整字节。 - 拆分与拼接:用正则
match(/[\dA-Fa-f]{2}/g)精准匹配每两位十六进制字符,得到字节数组后,用join(' ')拼接成空格分隔的格式。
内容的提问来源于stack exchange,提问作者Vijayakumar Sargunam
相关产品推荐
相关产品推荐

