A Web Design Community curated by Chris Coyier

Code Snippets Gallery

Code Snippets > JavaScript > htmlEntities for JavaScript Submit one!

htmlEntities for JavaScript

htmlentities() is a PHP function which converts special characters (like <) into their escaped/encoded values (like &lt;). This allows you to show to display the string without the browser reading it as HTML.

JavaScript doesn’t have a native version of it. If you just need the very basics to so that the browser won’t interpret as HTML, this should work fine (via James Padolsey and I got a a similar idea from David Walsh).

function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

The PHP.js project, which is a project to port over all of PHP’s native functions to JavaScript, contains an example as well. I tried it and it works, but I’ve been warned much of the code from that project is poorly written, so I’ve kept it simple and used the above.

2 Responses

  1. Krinkle says:

    I use the following two functions, in my opinion a very solid, complete and easy method.
    This particulary example uses jQuery but the principe isn’t dependant on jQuery:

    // Encode/decode htmlentities
    	function krEncodeEntities(s){
    		return $j("<div/>").text(s).html();
    	}
    	function krDencodeEntities(s){
    		return $j("<div/>").html(s).text();
    	}

Leave a Comment

Remember:
  • Be nice.
  • Wrap multiline code in <pre> and <code> tags and escape it first (turn <'s into &lt;'s).
  • You may use regular HTML stuff like <a href="">, <em>, and <strong>
* This website may or may not contain any actual CSS or Tricks.