How to strip HTML tags from div content using Javascript/jQuery?

前端 未结 6 884
梦毁少年i
梦毁少年i 2020-12-31 22:24

I had made one div tag and stored its contents in a variable. If this tag contains p,b or any other tags then it should be removed from string. How

相关标签:
6条回答
  • 2020-12-31 22:40

    use the regular expression.

    var regex = /(<([^>]+)>)/ig
    var body = "<p>test</p>"
    var result = body.replace(regex, "");
    
    alert(result);
    

    HERE IS THE DEMO

    Hope this helps.

    0 讨论(0)
  • 2020-12-31 22:47

    Using plain javascript you can do it as

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

    I think this is probably faster than the .text() method.

    0 讨论(0)
  • 2020-12-31 22:53

    This is safer:

    function plaintext(html){
      return $("<div/>").html(html).text();
    }
    
    0 讨论(0)
  • 2020-12-31 23:01

    I would like to add a few things on top of the accepted answer which is suggesting the regex var regex = /(<([^>]+)>)/ig:

    • you don't need the i flag in your regex as you don't match any alphabetic character. See here: http://jsfiddle.net/66L6nfwt/2/
    • you don't need any pair of brackets as you just replace with nothing the whole match. See here: http://jsfiddle.net/66L6nfwt/3/
    • This regex can be improved as it will fail if you use both chars < and > in your text content. See here: http://jsfiddle.net/66L6nfwt/4/
    • So here is a regex improvement: /<\/?\w+[^>]*\/?>/g. See here: http://jsfiddle.net/66L6nfwt/5/

    Final code:

    var regex = /<\/?\w+[^>]*\/?>/g,
        body = "<sTrong><b>test<b></STRONG><b> sss</b><em> what if you write some maths: i < 2 && i > 4.</em>";
    
    alert(body.replace(regex, ""));
    

    It can also be helpful to place the function in the built-in 'String' class so you can do this directly :

    "<em>test</em>".stripTags()

    String.prototype.stripTags = function()
    {
        return this.replace(/<\/?\w+[^>]*\/?>/g, '');
    };
    

    Eventually, if your string is a DOM node, you can do alert(element.innerText || element.textContent); which is built-in and even safer! See example here: http://jsfiddle.net/66L6nfwt/6/

    0 讨论(0)
  • 2020-12-31 23:02

    You can follow this example

    var stringContent = "<p>Hi dear</p><p>Wish you a happy birthday</p>";
    
    var text = $(stringContent).text();
    
    0 讨论(0)
  • 2020-12-31 23:07

    Solution Using JQuery:

    var content = "<p>Dear Andy,</p><p>This is a test message.</p>";
    
    var text = $(content).text();
    

    Solution using JavaScript:

    function removeTags(){
        var txt = document.getElementById('myString').value;
        var rex = /(<([^>]+)>)/ig;
        alert(txt.replace(rex , ""));
    
    }
    

    Also look a this link: Strip HTML Tags in JavaScript

    0 讨论(0)
提交回复
热议问题