2010-02-10 227 views
2

我面临解析HTML格式输入文本的小问题。成功转换开放和关闭标签等,但我如何识别文本区域中的“下一行(输入的文本)”?解析特殊字符并转换为HTML(转义字符串)

请帮

<script type="text/javascript"> 

jQuery(function($) { 

    $('#submit').click(function() { 
    var htmlval = $('#textEntry').val(); 
    $('p.escape').text(htmlval); 
    $('p.escape').escapeHtml(); 
    }); 


}); 

(function($) { 


$.fn.escapeHtml = function() { 
    this.each(function() { 
     $(this).html(
      $(this).html() 
       .replace(/"/g,"&quot;") 
       .replace(/&/g,'&amp;') 
       .replace(/</g,'&lt;') 
       .replace(/>/g,'&gt;') 
       .replace(/'/g,'&apos;') 
     ); 
    }); 
    return $(this); 
} 

})(jQuery); 

</script> 

HTML如下:..

<p class="escape"></p> 
<br> 
<textarea name="text" id="textEntry"></textarea><input type="submit" id="submit" value="submit" /> 

回答

3

不要刻意逃避文本的客户端,如果有人被人恶意他们只会手动提交它,并绕过花哨的JavaScript。在与数据库进行交互之前,将文本服务器端转义。

2

有一个JavaScript函数内置的权利!

$.fn.escapeHtml = function() { 
    return escape($(this)); 
} 

注:escape()不越狱使用HTML实体。它使用百分比编码转义,正如URI中所使用的。所以它与最初要求的不同。