码迷,mamicode.com
首页 > 编程语言 > 详细

Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &quot·· HTML转义符

时间:2019-02-01 11:34:19      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:多个   url   static   转码   ret   文本   col   cti   encode   

Razor 将C#对象转换成Javascript对象

在Razor中使用Json字符串,特殊字符被自动转义(如:\"->")

@{
    var jsonStr = Html.Raw(JsonUtil.ToJson(VieBag.data));
}
<script>
var data = JSON.parse(@jsonStr);
</script>

 

ViewBag.Data = list;

技术分享图片
<script type="text/javascript">
        //将数据对象转换为 JSON 格式,是为了在网页中通过使用JS将数据作为文本进行处理
        var data = @Html.Raw(Json.Encode(ViewBag.Data));
        for (var i = 0; i < data.length; i++) {
            var model=data[i];
            console.log("编号:"+model.id+"  姓名:"+model.name+"  性别:"+model.sex);
        }        
    </script>
View Code

 

技术分享图片
var c = document.createElement(div);
    c.innerHTML = @strData;
    var arrData = JSON.parse(c.innerText);
View Code

 

 

在JS中还原被转码的字符

技术分享图片
<script type="text/javascript">
    var a = h&nbsp;hello&lt;world&gt;!!!&lt;script&gt;alert(1)&lt;/script&gt;
    alert(a);
    var c = document.createElement(div);
    c.innerHTML = a;
    a = c.innerText || c.textContent;
    c = null;
    alert(a);
</script>
View Code

JS转换HTML转义符

技术分享图片
//去掉html标签

function removeHtmlTab(tab) {
 return tab.replace(/<[^<>]+?>/g,‘‘);//删除所有HTML标签
}
//普通字符转换成转意符

function html2Escape(sHtml) {
 return sHtml.replace(/[<>&"]/g,function(c){return {‘<‘:‘&lt;‘,‘>‘:‘&gt;‘,‘&‘:‘&amp;‘,‘"‘:&quot;}[c];});
}
//转意符换成普通字符

function escape2Html(str) {
 var arrEntities={lt:<,gt:>,nbsp: ,amp:&,quot:"};
 return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
}
// &nbsp;转成空格

function nbsp2Space(str) {
 var arrEntities = {nbsp :  };
 return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]})
}
//回车转为br标签

function return2Br(str) {
 return str.replace(/\r?\n/g,"<br />");
}
//去除开头结尾换行,并将连续3次以上换行转换成2次换行

function trimBr(str) {
 str=str.replace(/((\s|&nbsp;)*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行
 str=str.replace(/^((\s|&nbsp;)*\r?\n)+/g,‘‘);//清除开头换行
 str=str.replace(/((\s|&nbsp;)*\r?\n)+$/g,‘‘);//清除结尾换行
 return str;
}
// 将多个连续空格合并成一个空格

function mergeSpace(str) {
 str=str.replace(/(\s|&nbsp;)+/g, );
 return str;
}
View Code

 

//去掉html标签

1
2
3
function removeHtmlTab(tab) {
 return tab.replace(/<[^<>]+?>/g,‘‘);//删除所有HTML标签
}

//普通字符转换成转意符

1
2
3
function html2Escape(sHtml) {
 return sHtml.replace(/[<>&"]/g,function(c){return {‘<‘:‘&lt;‘,‘>‘:‘&gt;‘,‘&‘:‘&amp;‘,‘"‘:‘&quot;‘}[c];});
}

//转意符换成普通字符

1
2
3
4
function escape2Html(str) {
 var arrEntities={‘lt‘:‘<‘,‘gt‘:‘>‘,‘nbsp‘:‘ ‘,‘amp‘:‘&‘,‘quot‘:‘"‘};
 return str.replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
}

// &nbsp;转成空格

1
2
3
4
function nbsp2Space(str) {
 var arrEntities = {‘nbsp‘ : ‘ ‘};
 return str.replace(/&(nbsp);/ig, function(all, t){return arrEntities[t]})
}

//回车转为br标签

1
2
3
function return2Br(str) {
 return str.replace(/\r?\n/g,"<br />");
}

//去除开头结尾换行,并将连续3次以上换行转换成2次换行

1
2
3
4
5
6
function trimBr(str) {
 str=str.replace(/((\s|&nbsp;)*\r?\n){3,}/g,"\r\n\r\n");//限制最多2次换行
 str=str.replace(/^((\s|&nbsp;)*\r?\n)+/g,‘‘);//清除开头换行
 str=str.replace(/((\s|&nbsp;)*\r?\n)+$/g,‘‘);//清除结尾换行
 return str;
}

// 将多个连续空格合并成一个空格

1
2
3
4
function mergeSpace(str) {
 str=str.replace(/(\s|&nbsp;)+/g,‘ ‘);
 return str;
}

Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &quot·· HTML转义符

标签:多个   url   static   转码   ret   文本   col   cti   encode   

原文地址:https://www.cnblogs.com/love201314/p/10344755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!