有时候后台返回的数据中有字符串,并需要将字符串转化为HTML,下面封装了一个方法,如下

// html转义
function htmlspecialchars_decode(string, quote_style) {
var optTemp = 0
, i = 0
, noquotes = false;
if (typeof quote_style === 'undefined') {
quote_style = 2;
}
string = string.toString().replace(/</g, '<').replace(/>/g, '>');
var OPTS = {
'ENT_NOQUOTES': 0,
'ENT_HTML_QUOTE_SINGLE': 1,
'ENT_HTML_QUOTE_DOUBLE': 2,
'ENT_COMPAT': 2,
'ENT_QUOTES': 3,
'ENT_IGNORE': 4
};
if (quote_style === 0) {
noquotes = true;
}
if (typeof quote_style !== 'number') {
quote_style = [].concat(quote_style);
for (i = 0; i < quote_style.length; i++) {
if (OPTS[quote_style[i]] === 0) {
noquotes = true;
} else if (OPTS[quote_style[i]]) {
optTemp = optTemp | OPTS[quote_style[i]];
}
}
quote_style = optTemp;
}
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
string = string.replace(/&#0*39;/g, "'");
}
if (!noquotes) {
string = string.replace(/"/g, '"');
}
string = string.replace(/&/g, '&');
return string;
}

  为了便于更好的使用该方法,下面是关于转义为html的案例,如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="texts"> </div>
//点击“请求”按钮,开始执行转义并展示
<button class="btns">请求数据</button>
<div class="containerBox"></div>
</body>
<script src="vote/js/jquery_v3.3.1.js"></script>
<script>
$(function(){
$.ajax({
url: '1.json',
type: 'post',
})
.done(function(res) {
console.log(res.data[0]);
var aaa = res.data[0].sas;
var ddd = $('.texts').text(aaa)
htmlspecialchars_decode(res.data[0].sas) })
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
}); }) $('.btns').click(function() {
getReq();
});
function getReq(){
$.ajax({
url: '1.json',
type: 'post',
success:function(res){
console.log(res.data);
$.each(res.data, function(i, values) {
console.log(i)
console.log(values.sas);
var objHtml = htmlspecialchars_decode(values.sas)
$('.containerBox').append(objHtml)
});
},
error:function(e){
console.log(error)
}
}); }
// html转义,调用的时候只需要传第二个值即可
function htmlspecialchars_decode(string, quote_style) {
var optTemp = 0
, i = 0
, noquotes = false;
if (typeof quote_style === 'undefined') {
quote_style = 2;
}
string = string.toString().replace(/</g, '<').replace(/>/g, '>');
var OPTS = {
'ENT_NOQUOTES': 0,
'ENT_HTML_QUOTE_SINGLE': 1,
'ENT_HTML_QUOTE_DOUBLE': 2,
'ENT_COMPAT': 2,
'ENT_QUOTES': 3,
'ENT_IGNORE': 4
};
if (quote_style === 0) {
noquotes = true;
}
if (typeof quote_style !== 'number') {
quote_style = [].concat(quote_style);
for (i = 0; i < quote_style.length; i++) {
if (OPTS[quote_style[i]] === 0) {
noquotes = true;
} else if (OPTS[quote_style[i]]) {
optTemp = optTemp | OPTS[quote_style[i]];
}
}
quote_style = optTemp;
}
if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
string = string.replace(/&#0*39;/g, "'");
}
if (!noquotes) {
string = string.replace(/"/g, '"');
}
string = string.replace(/&/g, '&');
return string;
}
</script>
</html>

  里面的json数据为

 {
"data":[{
"sas":"&lt;section data-id=&quot;23210&quot; class=&quot;xmyeditor&quot; data-type=&quot;lspecial06&quot; data-tools=&quot;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;text-align: center;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #fff;line-height: 80px;text-shadow: 0 1px #ccc, 1px 0 #ccc, -1px 0 #ccc, 0 -1px #ccc;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size:80px;&quot;&gt; &lt;strong class=&quot;autosort&quot;&gt;1&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;text-align: center;margin-top: -45px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;background: url(http://alstyle.xmyeditor.com/sucai-png/20190124/5c498d915285ffwwwdwjjcz.qxwrkofsmliqxrpznudguodmwtvlmj);background-repeat: no-repeat;background-size: 100%;width: 100px;height: 30px;display: inline-block;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;margin-top: 5px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #333;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 15px;&quot;&gt; &lt;strong class=&quot;xmybrush&quot;&gt;五月&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;color: #666;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 17px;&quot; class=&quot;xmybrush&quot;&gt; 劳动节 &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt;"
},{
"sas":"&lt;section data-id=&quot;23210&quot; class=&quot;xmyeditor&quot; data-type=&quot;lspecial06&quot; data-tools=&quot;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;text-align: center;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #fff;line-height: 80px;text-shadow: 0 1px #ccc, 1px 0 #ccc, -1px 0 #ccc, 0 -1px #ccc;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size:80px;&quot;&gt; &lt;strong class=&quot;autosort&quot;&gt;1&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;text-align: center;margin-top: -45px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;background: url(http://alstyle.xmyeditor.com/sucai-png/20190124/5c498d915285ffwwwdwjjcz.qxwrkofsmliqxrpznudguodmwtvlmj);background-repeat: no-repeat;background-size: 100%;width: 100px;height: 30px;display: inline-block;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;margin-top: 5px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #333;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 15px;&quot;&gt; &lt;strong class=&quot;xmybrush&quot;&gt;六月&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;color: #666;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 17px;&quot; class=&quot;xmybrush&quot;&gt; 儿童节 &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt;"
},{
"sas":"&lt;section data-id=&quot;23210&quot; class=&quot;xmyeditor&quot; data-type=&quot;lspecial06&quot; data-tools=&quot;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;text-align: center;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #fff;line-height: 80px;text-shadow: 0 1px #ccc, 1px 0 #ccc, -1px 0 #ccc, 0 -1px #ccc;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size:80px;&quot;&gt; &lt;strong class=&quot;autosort&quot;&gt;1&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;text-align: center;margin-top: -45px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;background: url(http://alstyle.xmyeditor.com/sucai-png/20190124/5c498d915285ffwwwdwjjcz.qxwrkofsmliqxrpznudguodmwtvlmj);background-repeat: no-repeat;background-size: 100%;width: 100px;height: 30px;display: inline-block;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;margin-top: 5px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;section style=&quot;color: #333;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 15px;&quot;&gt; &lt;strong class=&quot;xmybrush&quot;&gt;七月&lt;/strong&gt; &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt; &lt;section style=&quot;color: #666;letter-spacing: 1px;line-height: 24px;&quot; powered-by=&quot;xmyeditor.com&quot;&gt; &lt;p style=&quot;padding: 0px;margin: 0px;font-size: 17px;&quot; class=&quot;xmybrush&quot;&gt; 建军节 &lt;/p&gt; &lt;/section&gt; &lt;/section&gt; &lt;/section&gt;"
}
]
}

直接运行即可显示转义为HTML的布局

字符串转义为HTML的更多相关文章

  1. 是否采用Sybase形式的自动字符串转义(用 '' 表示 ')

    ;; 关于php.ini ;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; h ...

  2. python字符串转义与正则表达式特殊字符转义

    最近在自学python,字符串和正则表达式的特殊字符转义有点混淆,做个笔记简单总结一下. 1.普通字符串转义 在字符串中使用特殊字符时,要用反斜杠(\)转义字符.例如:'Let\'s go!',这里对 ...

  3. PHP字符串转义

    与PHP字符串转义相关的配置和函数如下: 1.magic_quotes_runtime 2.magic_quotes_gpc 3.addslashes()和stripslashes() 4.mysql ...

  4. 从 RegExp 构造器看 JS 字符串转义设计

    多年前我第一次入职腾讯的时候,DC 从杭州给我寄来了一本他刚翻译出炉的<高性能 JavaScript>.那段时间为了帮忙校对,我仔细阅读了书中的每一个段落,结果积累了不少 JavaScri ...

  5. java字符串转义,把&lt;&gt;转换成<>等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

  6. react将字符串转义成html语句

    在使用reactjs库的时候,会遇到将一段html的字符串,然后要将它插入页面中以html的形式展现,然而直接插入的话页面显示的就是这段字符串,而不会进行转义,可以用以下方法插入,便可以html的形式 ...

  7. mybatis字符串转义问题

    问题描述 @Select("select * from account order by #{orderBy} #{orderRule} limit #{start},#{offset}&q ...

  8. PHP实现字符串转义和还原

    首先大家可以简单了解下什么是转义字符?有什么用? 转义字符是一种特殊的字符常量.转义字符以反斜线"\"开头,后跟一个或几个字符.转义字符具有特定的含义,不同于字符原有的意义,故称“ ...

  9. PHP怎么实现字符串转义和还原?

    首先大家可以简单了解下什么是转义字符?有什么用? 转义字符是一种特殊的字符常量.转义字符以反斜线"\"开头,后跟一个或几个字符.转义字符具有特定的含义,不同于字符原有的意义,故称“ ...

随机推荐

  1. IDEA+MySQL实现登录注册的注册验证时出现 Cannot resolve query parameter '2'

    问题描述: 在IDEA+MySQL+Tomcat 实现登录注册JSP的注册信息INSERT验证时出现 Cannot resolve query parameter '2' 贴上创建链接的代码: if( ...

  2. 【vue】渲染大量数据时性能优化

    对应vue渲染大量数据时可以考虑下面几点: 1. 异步渲染组件:因为组件渲染太多,影响页面的渲染时间,所有可以延迟组件渲染,可以考虑v-if处理 2. 可以使用虚拟滚动的组件:参考使用这个插件 vue ...

  3. HTML基础之JS中的字符转义--转义中文或特殊字符

    1.在标准的url的规范中是不允许出现中文字符或某些特殊字符的,所以要进行转义 2.& 代表参数的链接,如果就是想传& 给后端那么必须转义 decodeURI(url) URl中未转义 ...

  4. mac charles手机抓包详细教程

    1.官方下载charles 2.查看电脑IP地址 3.Proxy>Proxy Settings>勾选 Enable transparent HTTP proxying  (记住端口号 88 ...

  5. 机器学习基石10-Logistic Regression

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 上一节课介绍了Linear Regression线性回归,用均方误差来寻找最佳 ...

  6. python自定义封装logging模块

    #coding:utf-8 import logging class TestLog(object): ''' 封装后的logging ''' def __init__(self , logger = ...

  7. php cookie的问题

  8. form表单老忘的

    禁止拉伸 textarea{ resize:none; } 左侧 label 对齐注意事项 必须要和 label-width 共同使用,才会生效. 表单域标签的宽度,直接写入 Form, 子元素 fo ...

  9. js 检测输入内容是否为空(小程序,网站)

    一.输入内容只要有空格就会返回true if(/\s*/.test(data)){ return true }else{ return false } 二.先替换掉空格,更利于赋值或者判断 1.需要判 ...

  10. pads layout 自动打地孔

    对于PCBLayout来说,后期处理也是一项费时操作,比如为了让板子耦合的更好,会在板子空旷位置打上很多地过孔.“自动打地孔”则会让你省时又省心,一不小心就提前了工期哦,哈哈! 一.下面打开一个简单的 ...