繁体   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