我需要将十六进制的ASCII代码转换为字符。我从ascii中的服务器编号(字符串)中得到的,比如: 64656661756c74 (意思是‘默认’)。我知道String.fromCharCode(),但首先我需要将原始消息分成两位数(数组)。如何拆分基于2位数字的持续时间?谢谢。
发布于 2019-01-19 22:15:07
由于字符串是十六进制字符串表示形式,因此在传递给String.fromCharCode
之前还必须转换为十进制数
const str = "64656661756c74"
.match(/.{2}/g)
.map(ch => String.fromCharCode(parseInt(ch, 16)))
.join("");
console.log(str);
// "default"
正如您所说,这基本上是将值"default“存储在str
中。
发布于 2019-01-19 22:15:24
使用replace
:
let a = '64656661756c74';
let r = a.replace(/([0-9a-f]{2})/g, (m, a) => String.fromCharCode(parseInt(a, 16)))
console.log(r)
老式的方法:
let a = '64656661756c74', r = '';
for (let i = 0; i < a.length; i+=2)
r += String.fromCharCode(parseInt(a.substring(i, i+2), 16))
console.log(r)
发布于 2019-01-19 22:08:37
要将其拆分为2个字符的块,请使用如下正则表达式:
var str = '64656661756c74';
str = str.match(/.{1,2}/g);
console.log(str);
https://stackoverflow.com/questions/54271769
复制相似问题