如何使用JavaScript转换十六进制值期望输出



我尝试了很多方法,但都没有达到预期的效果。

输入:04:3d:54:a2:68:61:80

期望输出:01193333618139520

我该如何在JS中做到这一点?

const value = `04:3d:54:a2:68:61:80`
const barcode = parseInt(value.replace(':', ''), 16)
console.log(barcode) // 1085

问题是您正在使用replace而不是replaceAll

const value = `04:3d:54:a2:68:61:80`
const barcode = parseInt(value.replaceAll(':', ''), 16)
console.log(barcode)

正如Lian所建议的,您也可以通过replace(/:/g, '')

实现这一点因此获得更好的浏览器兼容性

const value = `04:3d:54:a2:68:61:80`
const barcode = parseInt(value.replace(/:/g, ''), 16)
console.log(barcode)

首先删除冒号,然后使用parseInt(myHex, 16)。

const myHex = '04:3d:54:a2:68:61:80';
function hexToDecimal(hexadecimal) {
return parseInt(hexadecimal.replaceAll(':', ''), 16);
}
console.log(hexToDecimal(myHex));

使用parseInt函数,将您的输入作为第一个参数,将16(因为十六进制是16进制)作为第二个参数。

let input = '04:3d:54:a2:68:61:80';
const inputParsed = parseInt(input.replace(/:/g, ''), 16); // 1193333618139520

如果您出于某种原因需要前导零,您可以这样做:

const inputParsedStr = `${inputParsed.toString().startsWith('0') ? '' : '0'}${inputParsed}`; // '01193333618139520'

相关内容

  • 没有找到相关文章