簡體   English   中英

正則表達式替換標簽中的字符

[英]regex replace characters within tags

我已經在使用html解析器,但是我需要創建一個正則表達式,它將在<code>標記的第一個實例內選擇<和>符號-在這種情況下,將使用類“ html”。

    <code class="html">
        <b>test</b><script>lol</script>
            <code>test</code> <b> test </b>
        <lol>
                        </lol>

            <test>
    </code>

因此,應該替換從<b>到最后一個</code>開頭的縮進區域中的每個<或>,而不要使用外部的<code>標記。

我正在使用javascript的.replace方法,並且希望代碼區域內的所有<和>符號都變成ascii&#60; 和&#62;。

我想最好使用$ 1等使用前向/后向正則表達式,但不知道從哪里開始,因此,我們將不勝感激。

這樣的事情怎么樣? 在此示例中,我將創建一個變量,並使用html填充該變量,以使事情開始。

var doc = document.createElement( 'div' );
doc.innerHTML =  ---your input html here

在這里我拉代碼標簽

var string = doc.getElementsByTagName( 'code' ).innerHTML; 

有了字符串后,只需將所需的括號替換為

var string = string .replace(/[<]/, "&#60;)
var string = string .replace(/[>]/, "&#62;)

然后只需將替換后的值重新插入到源html中

簡單的方法:

var elem = $('.html');
elem.text(elem.html());

這不一定會在字面上使用&#60; 逃跑 如果您可以使用其他轉義符,那么它比您可以做的任何其他事情都簡單得多。

如果您有多個類似的元素,則可能需要將第二行elem.each() 否則, html()方法可能只會連接所有元素中的內容或類似的毫無意義的東西。

暫無
暫無

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

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