通过删除Javascript中的前导零来缩短十六进制数

通过删除Javascript中的前导零来缩短十六进制数,javascript,hex,Javascript,Hex,我在字符串中有十六进制数,我想通过删除前导零来缩短它。我需要用Javascipt来做 例如: 以下所有数字都是十六进制数 0000000000000000000000000A000000 -> 00A00000 000000000000000000000000FA000000 -> 000F0A000000 000000000000000000000000C0A80000 -> C0A80000 00000000000000000000003BC0A80000

我在字符串中有十六进制数,我想通过删除前导零来缩短它。我需要用Javascipt来做

例如:

以下所有数字都是十六进制数

0000000000000000000000000A000000   -> 00A00000
000000000000000000000000FA000000   -> 000F0A000000

000000000000000000000000C0A80000   -> C0A80000
00000000000000000000003BC0A80000   -> 003BC0A80000
答案中的位数应该是4的乘法。如4位答案、8位答案、12位答案、16位答案等

我的java函数是这样的

// Remove preciding zero like a hex Eg: 0x0000000000000000000000000A000000 -> 0x0A000000

function hexFormatter(hexToShorted) {
    // make shortHex
    var shortedtHex = hexToShorted.replace(/^(0x)0+(0?.*)$/, "$1$2")
    return shortedtHex;
}


你应该先试试自己,然后把你所做的事情贴出来,我们可以试着从那里帮助你。也就是说,这里有一些东西可以帮助你:

让test1=“0x000000000000000C0045”
test1=test1.replace(/^(0x)0+(\w{4})+$/,“$1$2”)
console.log(test1)
让test2=“0x0000000000000000C45”
test2=test2.replace(/^(0x)0+(\w{4})+$/,“$1$2”)

console.log(test2)
parseInt(yourString).toString(16).toUpperCase()
会像3fa一样产生00003fa吗?我想把它作为03fa。不是3fa,不是。答案中的位数应该是4的乘法。像4位数的答案,8位数的答案,12位数的答案,16位数的答案等等…我已经更新了我的答案