从wmd文本编辑器TEXTAREA </tags>中的数据库驱动文本中删除html <tags>

时间:2010-09-15 18:10:12

标签: jquery html textarea

看着“In jQuery, want to remove all HTML inside of a div”,我正朝着正在寻找的方向前进:

我有一个类似于以下内容的textarea:

<textarea id="inputPane" cols="80" rows="40" class="pane" style="height:300px;">
<table><tr><td>
 <b>Since your service bureau</b>, xxx is not certified 
 by our company for xyz, your company will need to complete 
 more testing as part of the process.
</td></tr></table>
</textarea> 

使用上面列出的网址中的代码,我可以删除所有空格,但无法移除实际的HTML代码:<b></b><table>等。

jQuery.fn.stripTags = function() 
{ return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') ); };

这部分是什么意思?

/<\/?[^>]+>/gi

我认为它是:

  • 删除此字符<
  • 并删除此字符>
  • 并且一无所获。

虽然这不是我在代码中所做的。它似乎从我戴上它的DIV中剥离了所有的空白。

gi部分是什么? 并且,当显示的HTML来自数据库时,您是否有一个很好的解决方案从wmd-editor textarea中删除HTML标记?

3 个答案:

答案 0 :(得分:2)

我需要抓取一些html的div并将它们复制到textarea中。我把它全部变成了这样的一行:

$('#yourTextarea').val($('#yourTextarea').val()+$('.yourHTMLdivs').text().replace(/ +(?= )/g,'')); 

.yourHTMLdivs是被复制和删除的部分。 .text()是删除html的内容。最后的.replace()会占用额外的空格。这样做,你的信息被剥离并设置为进入textarea之前。

(我在阅读StackOverflow上的三四个类似问题后解决了这个问题!这里有很棒的东西。)

答案 1 :(得分:0)

我使用以下脚本从字符串中删除html标记 -

 function removeHTMLTags(htmlString)
 {
    if(htmlString)
    {
      var mydiv = document.createElement("div");
       mydiv.innerHTML = htmlString;

        if (document.all) // IE Stuff
        {
            return mydiv.innerText;
        }   
        else // Mozilla does not work with innerText
        {
            return mydiv.textContent;
        }                           
    }
 }  

不完全确定,但我认为/gi部分表示全局替换,如JavaScript中的string.replace

答案 2 :(得分:-1)

使用jquery更简单:

function removeHTMLTags(htmlString)
 {
    if(htmlString)
    {
      var mydiv = $("<div></div>");
       mydiv.html(htmlString);
       retun mydiv.html();
    }
 }