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

前端 未结 6 916
梦毁少年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 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 = "test sss what if you write some maths: i < 2 && i > 4.";
    
    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 :

    "test".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/

提交回复
热议问题