javascript - 通过删除 Javascript 中的前导零来缩短十六进制数
问题描述
我在字符串中有可用的十六进制数,我想通过删除前导零来缩短它。我需要在 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;
}
解决方案
您应该先尝试自己,然后发布您所做的事情,我们可以从那里尝试帮助您。也就是说,这里有一些可以帮助你的东西:
let test1 = "0x000000000000000C0045"
test1 = test1.replace(/^(0x)0+((\w{4})+)$/, "$1$2")
console.log(test1)
let test2 = "0x0000000000000000C45"
test2 = test2.replace(/^(0x)0+((\w{4})+)$/, "$1$2")
console.log(test2)
我建议你学习 regex,它非常有用
推荐阅读
- flutter - 为什么flutter build web制作的app有时候不能用?
- javascript - flex 容器中的可折叠 div 也会打开其他 div
- python - 抓取 URL 列表的数据
- python - 是否可以在 Python 中检查部分字符串的集合?
- javascript - 弱映射内存泄漏
- jquery - .prop("disabled", true) on click 不适用于 i 元素?
- java - 在java中重新启动信号量
- python - 为 word2vec 实现处理语料库
- c - 如何将变量从批处理文件发送到 C 程序?
- c# - 如何从异步任务将 ItemsSource 添加到 DataGrid