Razor 將C#對象轉換成Javascript對象, json還原被轉碼的字符 "·· HTML轉義符


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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM