📅  最后修改于: 2023-12-03 15:07:19.874000             🧑  作者: Mango
在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"
不过需要注意的是,这种写法不太容易理解,建议只在短小的函数中使用。