JavaScript Hex Escape字符解码

时间:2015-07-30 04:07:40

标签: javascript

是否有任何JavaScript函数与JavaScript十六进制转义字符串做同样的事情,下面提到的python代码呢?

>>> a = "\x41\x42\x43\x44"
>>> a.encode('string-escape')
'ABCD'

因为,我使用getElementById.value从文本字段中获取值,我认为字符串类似于\\x41\\x42\\x43\\x44

enter image description here

谢谢,

2 个答案:

答案 0 :(得分:2)

unescape可以帮助您

unescape("\x41\x42\x43\x44") //ABCD

答案 1 :(得分:0)

请参阅有关此问题的评论。基本上没有必要在JavaScript中做任何事情。

var a = "\x41\x42\x43\x44";
a // "ABCD"
a.charAt(0); // "A"
a === "ABCD" // true

更新:快速肮脏的黑客是使用类似以下的东西。对我来说有点晚了,但我确信有更清洁的方法。

这将获取每个十六进制块,将其转换为十进制值,最后将该值用作字符代码以替换原始十六进制块。



var el = document.getElementById('my-el');

el.onblur = function () {
  var val = this.value;
  
  var newVal = val.replace(/\\x([0-9A-F]{2})/ig, function() {
    return String.fromCharCode(parseInt(arguments[1], 16));
  });
  alert(newVal);
};

<p>Enter \x41\x42\x43\x44</p>
<input type="text" id="my-el">
&#13;
&#13;
&#13;