簡體   English   中英

嘗試使用正則表達式替換html標記

[英]Trying to replace html tags using regex

例如,我正在嘗試替換

<script type='text/javascript'>some stuff</script>

有:

<div type='text/javascript'>some stuff</div>

我目前正在測試:

alert( o.replace( /(?:<\s*\/?\s*)(script)(?:\s*([^>]*)?\s*>)/gi ,'div') );

但我得到的是:

divsomestuffdiv

如何才能將其替換為“腳本”部分並保留其他標記和屬性字符?

您保留了開始和結束標記括號。 試試這個:

o.replace(/(<\s*\/?\s*)script(\s*([^>]*)?\s*>)/gi ,'$1div$2')

DOM方法比正則表達式更適合這種情況。 這樣您就可以邏輯地操作文檔而不是純文本:

var els = document.getElementsByTagName('script');
for (var i = 0, el; el = els[i]; i++) {
    var new = document.createElement('div');
    new.type = el.type;
    el.parentNode.replaceChild(el, new);
}

一種天真但可讀的方式是在兩次傳遞中做到這一點,我猜想並首先匹配並替換

<script

部分與

<div

然后另一個匹配

</script>

並替換它

</div>

暫無
暫無

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

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