将字符串解析为一系列转义的十六进制字符的方法是什么?

时间:2015-01-23 18:44:16

标签: javascript string

我的目标是处理一些表示一系列十六进制字节值的输入字符串,并输出转义的十六进制值。 我也可以自由地格式化字符串(添加空格,分成块等)。

实施例(更新):

var input = "FF655050"; 
var output = "\xFF\x65\x50\x50"; 
console.log(output); //ÿePP

我没有成功使用字符串操作(追加,替换),我不太确定我的选择。我真的想避免一个巨大的转换案例。

编辑:抱歉没有正确指定输出。我想要实际的转义字符(以转义形式),而不是字符串表示。

3 个答案:

答案 0 :(得分:1)

使用循环:

var input = "FF655050";
var output = "";
for (var i = 1; i < input.length; i+=2) {
  output += String.fromCharCode(parseInt(input[i-1] + input[i], 16));
}
alert(output)

或使用正则表达式:

var input = "FF655050";
var output = input.replace(/.{0,2}/g, function(x){ return String.fromCharCode(parseInt(x, 16)) });
alert(output)

答案 1 :(得分:0)

遍历每组两个并在其前面添加“\ x”

var input = "FF04CA7B";
var i = 0;
var output = "";
while( i < input.length ){
 output += "\\x" + input[i];
 if(i+1<input.length)output+=input[i+1];
 i+=2;
}
alert(output);

答案 2 :(得分:0)

一个简单的for循环递增2应该可以解决问题。

var input = "FF04CA7B";
var output = "";
for (var i=1; i<input.length; i+=2) {
  output += '\\x'+input[i-1]+input[i];
}