[英]Javascript: String with hex to decimal
我有一个包含多个十六进制数字的字符串:
let input = '\\x01\\x01\\x02\\x01';
我希望将其转换为: 1121
(每个十六进制数字的十进制表示)
我将如何处理? 我已经尝试了很多事情,但是我得到的唯一输出是一些带有问号或语法错误的菱形形状。 提前谢谢了!
这是一个简单的方法,可以对字符串进行转义,删除空元素,将每个数字转换为十进制数字,将其作为字符串连接,然后将最终结果转换为数字。
function convert(string) { string = escape(string); string = string.split(/%/).filter(e=>e); string = string.map(e => +("0x"+e)); return +string.join(""); } // Test case var decimal = convert('\\x01\\x01\\x02\\x01'); console.log(decimal);
为了能够使用转义序列本身而不是最终的空格,您可以使用String raw
来替换:
let input = String.raw`\x01\x01\x02\x01`;
console.log(
input
.replace(/\\x01/g, "1")
.replace(/\\x02/g, "2")
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.