nee*_*raj 3 javascript string hex text decode
我在将字符串字符的十六进制值转换为正常测试值方面遇到困难,例如十六进制'到sting的值 是'撇号.
可以在此链接上找到另一个十六进制字符值:http://character-code.com/.
有人可以告诉我是否存在这样做的javascript方法,还是应该为此目的使用一些外部javascript库插件?
我一直在使用已经尝试过URIencode和URIencodecomponent,但没有运气
您可以使用String.fromCharCode- 但首先需要将十六进制值(以 16 为基数)转换为整数(以 10 为基数)。这样做的方法如下:
var encoded = "'";
var REG_HEX = /&#x([a-fA-F0-9]+);/g;
var decoded = encoded.replace(REG_HEX, function(match, group1){
var num = parseInt(group1, 16); //=> 39
return String.fromCharCode(num); //=> '
});
console.log(decoded); //=> "'"
Run Code Online (Sandbox Code Playgroud)
要将十进制转换回十六进制,您可以这样做:
decoded.toString(16); //=> 27
Run Code Online (Sandbox Code Playgroud)
您可以使用主机提供的解析器将实体插入元素中,然后返回textContent(或者替换支持的innerText):
var el = document.createElement('span');
el.innerHTML = ''';
console.log('' is a ' + (el.textContent || el.innerText)); // ' is a '
Run Code Online (Sandbox Code Playgroud)
当然,这对浏览器不支持的实体不起作用.
将上述内容转换为函数:
var entityToText = (function() {
// Create a single span to parse the entity
var span = document.createElement('span');
// Choose textContent or innerText depending on support
var theText = typeof span.textContent == 'string'? 'textContent' : 'innerText';
// Return the actual function
return function(entity) {
span.innerHTML = entity;
return span[theText];
}
}());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |