Javascript 如何根据JS中的数字从数字创建数组?
我需要把十六进制的ASCII码翻译成字符。我从ascii格式的服务器编号(作为字符串)中获得,比如:64656661756c74(表示“默认”)。我知道String.fromCharCode(),但首先我需要将原始消息拆分为两位数(数组)。如何根据持续时间分割两位数?Javascript 如何根据JS中的数字从数字创建数组?,javascript,arrays,string,Javascript,Arrays,String,我需要把十六进制的ASCII码翻译成字符。我从ascii格式的服务器编号(作为字符串)中获得,比如:64656661756c74(表示“默认”)。我知道String.fromCharCode(),但首先我需要将原始消息拆分为两位数(数组)。如何根据持续时间分割两位数? 谢谢 要将其拆分为两个字符的块,请使用如下正则表达式: var str='64656661756c74'; str=str.match(/.{1,2}/g); console.log(str)由于字符串是十六进制字符串表示形式,
谢谢 要将其拆分为两个字符的块,请使用如下正则表达式:
var str='64656661756c74';
str=str.match(/.{1,2}/g);
console.log(str)代码>由于字符串是十六进制字符串表示形式,因此在传递到字符串之前,还必须转换为十进制数。fromCharCode
:
const str=“64656661756c74”
.match(/.{2}/g)
.map(ch=>String.fromCharCode(parseInt(ch,16)))
.加入(“”);
console.log(str);
//“默认值”
使用替换:
a='64656661756c74';
设r=a.replace(/([0-9a-f]{2})/g,(m,a)=>String.fromCharCode(parseInt(a,16)))
console.log(r)
如上所述,您的ASCII序列可能不正确。也许它是一个十六进制的流
假设ASCII数字正确,
你可以这样说
var str='68697065857684';
str=str.match(/.{1,2}/g);
对于(index=str.length-1;index>=0;--index){
var-temp=str[指数];
str[index]=String.fromCharCode(temp);
}
console.log(str)代码>您确定ASCII是正确的吗?我认为应该是68697065857684
。欢迎来到StackOverflow!这个社区专注于解决特定的编程问题,所以像“我怎么做…?”这样的问题往往过于广泛。你应该试着自己弄清楚,如果你遇到任何具体问题,把它们贴在这里,我相信你会得到帮助。什么样的服务器会以十六进制字符串的形式返回文本?!对不起,我更新了我的问题,是的,它是十六进制的ASCII码。返回此类答案的服务器是“Grass valley K2 summit”。它的AMP控制协议。是的,因为除了UTF-16之外,JavaScript本质上没有字符编码库,所以您可以依赖块的ASCII编码与UTF-16编码相同,并使用fromCharCode
;或者依赖于该块的ASCII编码与ASCII码点和Unicode码点相同,并使用fromCodePoint
。依我看,这值得一个代码注释。是的,它是十六进制的(十进制没有意义),而且是小写的!你是对的@Bergi我第一次看到十六进制的文本流:)对不起,我更新了我的问题,是的,它是十六进制的ASCII码。返回此类答案的服务器是“Grass valley K2 summit”。它的AMP控制协议。很好的解决方案。