html解析<号>号出现字符实体< >: &如何转义
问题:
在用wordpress的markdown插件写文章的时候,发现代码块偶尔无法正常解析 < 和 > 号
类似这样:
暴雨直下眼迷茫,
大风骤起飕脸庞。
雷声贯耳家中藏,
草香扑鼻思故乡。
</pre></div>
分析:
说明在解析文章的时候,得到的字符串为字符实体,然后网上找了通过字符串替换的方法解决这个问题
以下为相互转换的js函数
//<转义为<
function escapeHTML(str){
str = "" + str;
return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
},
//<还原为<
function unescapeHTML(str){
str = "" + str;
return str.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'");
}
解决:
运用到wordpress博客中,可以在编辑主题中,修改function.php源码,加入一段插入页脚的方法,塞入你的js代码即可,以下为新加入的页脚代码,加在function.php的头部即可,后续有新的js代码也可以写在这里:
// 自定义脚本 ------------------------------------------start
function wpb_hook_javascript_footer() {
?>
<script>
function unescapeHTML(a){
a = "" + a;
return a.replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'");
}
var codeContainers = document.querySelectorAll(".codecolorer-container");
if(codeContainers.length > 0){
for(var i = 0; i < codeContainers.length; i++){
codeContainers[i].innerText = unescapeHTML(codeContainers[i].innerText)
}
}
</script>
<?php
}
add_action('wp_footer', 'wpb_hook_javascript_footer');
// 自定义脚本 ------------------------------------------end
感谢:
https://www.cnblogs.com/LiuLiangXuan/p/5212155.html
https://boke112.com/post/5981.html