簡體   English   中英

動態地從javascript變量中剝離HTML標簽

[英]Strip HTML Tags from javascript variable dynamically

我有以下html:

<div id="iView" name="iView" contenteditable="true" style="width: 545px; height:185px; border: 2px solid green;"><p>jgfj</p>hello this</div>
    <input type="button" value="click" onClick="getEditorText();" />

我的腳本在這里:

function getEditorText(){
    var viewContent = document.getElementById('iView').innerHTML;
    alert(viewContent);
    //alert(viewContent.replace(/<([^>]+)>/ig,"")); nothing works
    //alert(viewContent.replace(/(<\S([^>]+)>)/ig,"")); nothing works
    //alert(viewContent.replace(/<[^>]+>/ig,"")); nothing works
    //alert(viewContent.replace(/<\/?[^>]+(>|$)/g, "")); nothing works
    //alert(viewContent.replace(/<(?:.|\n)*?>/gm, '')); nothing works
}

在我的第一個警報中,它省略了標簽。

但是,當我動態包含標簽時..它沒有忽略標簽..所以讓我知道如何使用javascript而不是jquery動態剝離html標簽嗎?

您的代碼的修改后的版本應該可以正常工作:

function getEditorText() {

    var el = document.getElementById('iView'),
        viewContent = el.innerText || el.textContent;

    viewContent = viewContent.replace(/<([^>]+)>/ig,"")
        .replace(/(<\S([^>]+)>)/ig,"")
        .replace(/<[^>]+>/ig,"")
        .replace(/<\/?[^>]+(>|$)/g, "")
        .replace(/<(?:.|\n)*?>/gm, '');

    el.innerHTML = viewContent;
}

演示: http//jsfiddle.net/LRCXM/2/

請注意,Firefox需要textContent而不是innerText

使用innerText代替innerHTML 演示

您可以使用此正則表達式去除html標簽。

var strippedString=viewContent.replace(/<(?:.|\n)*?>/gm, '');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM