Grow your CSS skills. Land your dream job.

Last updated on:

Strip HTML Tags in JavaScript

var StrippedString = OriginalString.replace(/(<([^>]+)>)/ig,"");

Comments

  1. Permalink to comment#

    Your script works great! Cheers!

  2. admire
    Permalink to comment#

    this is so cool , i like it

  3. John Doe
    Permalink to comment#
    /**
    * isArray
    *
    * @param mixed input
    * @return bol
    */
    
    function is_array(obj) {
    if (obj.constructor.toString().indexOf(‘Array’) == -1) {
    return false;
    }
    return true;
    }
    
    /**
    * stripTags
    *
    * @param mixed input
    * @parm mixed output
    */
    
    function strip_tags(input) {
    if (input) {
    var tags = /(]+)>)/ig;
    if (!is_array(input)) {
    input = input.replace(tags,”);
    }
    else {
    var i = input.length;
    var newInput = new Array();
    while(i–) {
    input[i] = input[i].replace(tags,”);
    }
    }
    return input;
    }
    return false;
    }
    
  4. function strip(html)
    {
    var tmp = document.createElement("DIV");
    tmp.innerHTML = html;
    return tmp.textContent || tmp.innerText;
    }

    • JC
      Permalink to comment#

      This was even better for my needs. No issues with special characters etc…

    • That is awful advice!

      If for some reason (like malicious intent of users) the html argument contains a script tag, you’ve now opened up for XSS attacks!!!

      Don’t use the DOM for something that doesn’t require it.

      Also, the DOM is really slow.

    • This solution is great for using of inner content from paragraph in JS Alert window – it strips nbsp and em efectivelly,
      thanks

  5. derek
    Permalink to comment#

    hey!!!..this is so ridiculous..

  6. Thank you for great example

  7. Thanks, this does exactly what I need (and so concisely, too!)

  8. Permalink to comment#

    Thanks! A quick note about the regexp: the “i” isn’t needed here because there are no characters to be case-insensitive about. However, it does exactly what you want either way.

  9. Permalink to comment#

    your code works perfectly.. Thanks.. :)

  10. Porter
    Permalink to comment#

    Nice, but the parentheses are unnecessary.

    .replace(/<[^>]+>/ig,””);

  11. Florian Ricard
    Permalink to comment#

    Hi :)

    I saw your contact form and i must say i love it!
    Do you have a tutorial or something like that? It’s a wonderful one :)^
    Hope to hear some news of you,

    A french reader,

    Florian

  12. Thank for script :)

    @Ricard: If you want to make a copy of the contact form, just view source or save this page to you local ;)

  13. Words like a charm!!

  14. beautul site thank you for great example

  15. DScout
    Permalink to comment#

    the /i for case insensitivity is definitely recommended.
    When using contenteditable, IE produces upper case tags, mozilla would only create lower case… To strip those you need it case insensitive.

    • do0g

      DScout, this is incorrect. There are no specified alphabetical characters in the regular expression – the case insensitivity modifier therefore affects nothing.

  16. Sadia
    Permalink to comment#

    Hi

    I have following code:

    var text = ‘[$ ssIncludeXml(docName,”wcm:root/wcm:element[@name=’innerpage_content’]/text()”) $]';
    var StrippedString = text.replace(/(]+)>)/ig,””);

    where ‘[$ ssIncludeXml(docName,”wcm:root/wcm:element[@name=’innerpage_content’]/text()”) $]’
    is Idoc script that brings a block of HTML from a placeholder. But i am getting “unterminated string literal” Error at first line.

    What i want to do is to remove or strip all HTML tags and to get plain text out of that markup.

    Kindly let me know if there is any solution.

    Thanks

  17. Permalink to comment#

    works great but doest strip whitespaces….  

  18. Valutar BNR
    Permalink to comment#

    Thank you! It was very useful for me and I think that is useful for everyone.
    Thank you again!

  19. Yeah, this solution removed all sorts of HTML, paragraph, line breaks, in-line styles etc etc

  20. reena upadhyay
    Permalink to comment#

    This does not works for IE. Please provide solution to strip tag in javascript that works for all browsers

  21. Shilpa Agrawal
    Permalink to comment#

    Thanks for this script
    It work greate

  22. Sunil Dabhi
    Permalink to comment#

    great script its working
    thanks

  23. Ammar
    Permalink to comment#

    i am trying it on

    var message;

    firstName = document.getElementById(“username”).value;

    if (firstName == null || firstName == “” || firstName == NaN || firstName == “First Name”) {
    message = “Please Add some name.”;
    document.body.insertAdjacentHTML(“BeforeEnd”, “” + message + “”);
    }
    else {
    if (document.getElementById(“myMessage”)) {
    debugger;
    arguments = document.getElementById(“myMessage”).value.replace(/(]+)>)/ig, “”);
    }
    }

    but it is not working and saying

    cannot call method ‘replace’ of undefined

  24. Ryan Mc Closkey

    Was wondering how this would be implemented if I only wanted to remove the href tags from a string of text, instead of removing all the tags? I’m trying to retrieve a page of text from a website but I only want the plain text with the formatting tags (p, ul, li).
    Hope this makes sense, thanks in advance.

  25. This was excellent! Thanks!

  26. Permalink to comment#

    Great! Thanks!

  27. Hemant Vaniya
    Permalink to comment#

    Thanks,
    Its working fine.

  28. Emmanuel Sayson
    Permalink to comment#

    Cool! This is perfectly working…

  29. anonymous
    Permalink to comment#

    What about < b r / > or < h r / > (the self closing tags) ?

  30. Nagarjuna Gottimukkala
    Permalink to comment#

    Cool……Nice Example.

  31. Jeremy
    Permalink to comment#

    Looks like “newInput” doesn’t do anything at all? So it’s either extraneous or there’s a problem with the code.

  32. I have developed same thing using javascript Regular Expression.
    It’ll strip all the html tags excluding tag provided in exclude list by user.
    source code is also available on github
    check here. HTML Tag Stripper

  33. Nice, but it’s not that safe… I’d rather use jQuery:

    $("<div/>").text('<img alt="a>b" src="a_b.gif" />').text();

  34. Ahahahaha

    document.body.innerText

    <a onclick=”return a > b”> ~ fail

  35. SKV
    Permalink to comment#

    But this code is not working well with HTML table content.

  36. ENS
    Permalink to comment#

    It works … thanks buddy

  37. Al
    Permalink to comment#

    How can strip all tags except anchor and img tags?

  38. Al
    Permalink to comment#

    problem with xss attacks.

    <iframe src=http://ha.ckers.org/scriptlet.html <

  39. Jonas
    Permalink to comment#

    You can easily leave out the case sensitivity /i and the grouping ():

    var noHtml = hasHtml.replace(/<[^>]+>/ig, ”)

  40. duromir
    Permalink to comment#

    using jQuery
    jQuery(stringWithTags).text()

Leave a Comment

Posting Code

Markdown is supported in the comment area, so you can write inline code in backticks like `this` or multiline blocks of code in in triple backtick fences like ```this```. You don't need to escape code in backticks, Markdown does that for you.

Sadly, it's kind of broken. WordPress only accepts a subset of HTML in comments, which makes sense, because certainly some HTML can't be allowed, like <script> tags. But this stripping happens before the comment is processed by Markdown (via Jetpack). It seems to me that would be reversed, because after Markdown processes code in backticks, it's escaped, thus safe. If you think you can fix this issue, get in touch!

If you need to make sure the code (typically HTML) you post absolutely posts correctly, escape it and put it within <pre><code> tags.

Current ye@r *

*May or may not contain any actual "CSS" or "Tricks".