我有一个包含多个十六进制数字的字符串:
let input = '\x01\x01\x02\x01';
我希望将其转换为:1121
(每个十六进制数字的十进制表示形式)
我将如何处理?我已经尝试了很多事情,但是我得到的唯一输出是一些带有问号或语法错误的菱形形状。提前非常感谢!
答案 0 :(得分:1)
这是一种简单的方法,可以对字符串进行转义,删除空元素,将每个数字转换为十进制数字,将其作为字符串连接,然后将最终结果转换为数字。
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);
答案 1 :(得分:0)
要能够使用转义序列本身而不是最终的空格,可以使用String
raw
然后替换:
let input = String.raw`\x01\x01\x02\x01`;
console.log(
input
.replace(/\\x01/g, "1")
.replace(/\\x02/g, "2")
);