zoukankan      html  css  js  c++  java
  • javascript對文本encode編碼

             //source輸入的文本
       //dispaly爲true,表示格式化特殊字符,如把輸入的空格替換成&nbsp;換行替(\r\n))換成<br>
       //tabs默認爲4
      function htmlEncode(source, display, tabs)
      {
       function special(source)
       {
        var result = '';
        for (var i = 0; i < source.length; i++)
        {
         var c = source.charAt(i);
         if (c < ' ' || c > '~')
         {
          c = '&#' + c.charCodeAt() + ';';
         }
         result += c;
        }
        return result;
       }
       
       function format(source)
       {
        // Use only integer part of tabs, and default to 4
        tabs = (tabs >= 0) ? Math.floor(tabs) : 4;
        
        // split along line breaks
        var lines = source.split(/\r\n|\r|\n/);
        
        // expand tabs
        for (var i = 0; i < lines.length; i++)
        {
         var line = lines[i];
         var newLine = '';
         for (var p = 0; p < line.length; p++)
         {
          var c = line.charAt(p);
          if (c === '\t')
          {
           var spaces = tabs - (newLine.length % tabs);
           for (var s = 0; s < spaces; s++)
           {
            newLine += ' ';
           }
          }
          else
          {
           newLine += c;
          }
         }
         // If a line starts or ends with a space, it evaporates in html
         // unless it's an nbsp.
         newLine = newLine.replace(/(^ )|( $)/g, '&nbsp;');
         lines[i] = newLine;
        }
        
        // re-join lines
        var result = lines.join('<br />');
        
        // break up contiguous blocks of spaces with non-breaking spaces
        result = result.replace(/  /g, ' &nbsp;');
        
        // tada!
        return result;
       }

       var result = source;
       
       // ampersands (&)
       result = result.replace(/\&/g,'&amp;');

       // less-thans (<)
       result = result.replace(/\</g,'&lt;');

       // greater-thans (>)
       result = result.replace(/\>/g,'&gt;');
       
       if (display)
       {
        // format for display
        result = format(result);
       }
       else
       {
        // Replace quotes if it isn't for display,
        // since it's probably going in an html attribute.
        result = result.replace(new RegExp('"','g'), '&quot;');
       }

       // special characters
       result = special(result);
       
       // tada!
       return result;
      }

  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/wang123/p/868722.html
Copyright © 2011-2022 走看看