如何在TypeScript中将数字转换为字节字符串?

时间:2017-02-09 10:18:02

标签: typescript

假设我有一个由3个字节组成的数字,0x303132 如何将此数字转换为3个字符长的相同值的字符串 - '012' - 这是ASCII中上述每个字节的值? 我知道你可以使用'\ x',但我不想对这个值进行硬编码。

2 个答案:

答案 0 :(得分:3)

因此,由于输入是一个十六进制值序列(因此每个都有两个字符),我将使用正则表达式忽略标题(0x)并提取两个(有效)字符,它们进入String.replace方法的转换函数,它将提取的值从十六进制转换为十进制,然后从十进制值转换为ascii字符



input = "0x303132"
output = input.replace(/(?:0x)?([0-9a-f]{2})/ig, function (match, $1) {
	return String.fromCharCode(parseInt($1, 16));
})

console.log(output)




答案 1 :(得分:0)

我的单行功能尝试(没有正则表达式,没有JQuery,没有lodash),v包含字符串

const s = Array.from(Array((v.length-2)/2).keys()).reduce(
    (acc, i) => acc + String.fromCharCode(parseInt(v.slice(2+i*2, 2+(i+1)*2),16)),
     ""
)

playground

中查看