[英]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.