📜  十六进制字符串到十进制字符串 javascript (1)

📅  最后修改于: 2023-12-03 15:07:19.874000             🧑  作者: Mango

十六进制字符串到十进制字符串的转换(JavaScript)

在JavaScript中,将十六进制字符串转换为十进制字符串可以使用parseInt()函数。parseInt()函数可以接受两个参数,第一个参数是要转换的字符串,第二个参数是字符串的进制数。如果未指定第二个参数,则默认为十进制。因此,对于十六进制字符串,需要将第二个参数设置为16

以下是一个实用的函数,可以将十六进制字符串转换为十进制字符串:

function hexToDec(hexString) {
  return parseInt(hexString, 16).toString(10);
}

使用示例:

console.log(hexToDec("FF")); // "255"
console.log(hexToDec("1A")); // "26"
console.log(hexToDec("ABCDEF")); // "11259375"

注意,如果十六进制字符串以0x#开头,则需要先将其去掉,否则parseInt()函数无法正确解析。

以下是修改后的函数,可以处理带有前缀的十六进制字符串:

function hexToDec(hexString) {
  hexString = hexString.replace(/^0x|#/, '');
  return parseInt(hexString, 16).toString(10);
}

使用示例:

console.log(hexToDec("0xFF")); // "255"
console.log(hexToDec("#1A")); // "26"
console.log(hexToDec("#ABCDEF")); // "11259375"

这个函数也可以使用ES6的简写形式:

const hexToDec = hexString => parseInt(hexString.replace(/^0x|#/, ''), 16).toString(10);

使用示例:

console.log(hexToDec("0xFF")); // "255"
console.log(hexToDec("#1A")); // "26"
console.log(hexToDec("#ABCDEF")); // "11259375"

不过需要注意的是,这种写法不太容易理解,建议只在短小的函数中使用。