Исправленный HTML-код, полученный из базы данных

#javascript #.net #angularjs

#javascript #.net #angularjs

Вопрос:

Я хотел бы украсить html-код, который я получаю из базы данных. Какой лучший способ сделать это без использования библиотек.

Я получаю эту информацию из базы данных:

 @{ var model = (Text.Alert.Models.AlertTemplateModel)Model; var contentItems = model.ContentItems.OrderByDescending(d => d.PublicationDate).ToArray(); } @for (int i = 0; i < contentItems.Count(); i  ){ <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> <tr valign="top"> @if (!String.IsNullOrEmpty(contentItems[i].MediaUrl)) { <td width="132"><img src="@(contentItems[i].MediaUrl)" style="display: block;" alt="" width="103">  </td> } <td> <font color="#7391a2" size="2"> <font color="#d1065a" size="3"> @if (!string.IsNullOrEmpty(contentItems[i].Url)) { <a href="@(contentItems[i].Url)">@(contentItems[i].Title)</a> } else { @(contentItems[i].Title) } </font> <br> @(Raw(contentItems[i].Description)) </font> </td> </tr> </tbody> </table> <br/> }";
  

Это моя функция:

  function makeReadable(text) {
    var readableHTML = text;
    var lb = 'rn';
    //var htags = ["var", "@{", "@for", "@if", "@else", "}", "<img", "<html", "</html>", "</head>", "<title", "</title>", "<meta", "<link", "<style", "</style>", "</body>"];
    var htags = ["var","@{","@for","@if","@else","}","<img", "<"];
    for (i = 0; i < htags.length;   i) {
        var hhh = htags[i];
        readableHTML = readableHTML.replace(new RegExp(hhh, 'gi'), lb   hhh);
    }
    var btags = ["</div>", "</span>", "</form>", "<a", "<font", "</fieldset>", "<br>", "<br />", "</a>", "<hr", "<pre", "</pre>", "<blockquote", "</blockquote>", "<ul", "</ul>", "<ol", "</ol>", "<li", "<dl", "</dl>", "<dt", "</dt>", "<dd", "</dd>", "<!--", "<table", "</table>", "<caption", "</caption>", "<th", "</th>", "<tr", "</tr>", "<td", "</td>", "<script", "</script>", "<noscript", "</noscript>"];
    for (i = 0; i < btags.length;   i) {
        var bbb = btags[i];
        readableHTML = readableHTML.replace(new RegExp(bbb, 'gi'), lb   bbb);
    }
    var ftags = ["<label", "</label>", "<legend", "</legend>", "<object", "</object>", "<embed", "</embed>", "<select", "</select>", "<option", "<option", "<input", "<textarea", "</textarea>"];
    for (i = 0; i < ftags.length;   i) {
        var fff = ftags[i];
        readableHTML = readableHTML.replace(new RegExp(fff, 'gi'), lb   fff);
    }
    var xtags = ["<body", "<head", "<div", "<span", "<p", "<form", "<fieldset"];
    for (i = 0; i < xtags.length;   i) {
        var xxx = xtags[i];
        readableHTML = readableHTML.replace(new RegExp(xxx, 'gi'), lb   lb   xxx);
    }
    return readableHTML;
}
  

Когда я использую свою функцию, результат таков:

 @{ var model = (Text.Alert.Models.AlertTemplateModel)Model; var contentItems = model.ContentItems.OrderByDescending(d => d.PublicationDate).ToArray(); } @for (int i = 0; i < contentItems.Count(); i  ) { 
    <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tbody> 
    <tr valign="top"> @if (!String.IsNullOrEmpty(contentItems[i].MediaUrl)) { 
    <td width="132"><img src="@(contentItems[i].MediaUrl)" style="display: block;" alt="" width="103">
    </td> } 
    <td> 
    <font color="#7391a2" size="2"> 
    <font color="#d1065a" size="3"> @if (!string.IsNullOrEmpty(contentItems[i].Url)) { 
    <a href="@(contentItems[i].Url)">@(contentItems[i].Title)
    </a> } else { @(contentItems[i].Title) } </font> 
    <br> @(Raw(contentItems[i].Description)) </font> 
    </td> 
    </tr> </tbody> 
    </table> <br/> }
";
  

Комментарии:

1. Если вы не используете какую-либо библиотеку, вам, вероятно, нужно создать свою собственную

2. ОК, тогда библиотеку witch будет лучше всего использовать?

3. для этого вы можете использовать шаблон подчеркивания или обработчики или усы