我正在使用文本编辑器,当页面呈现时,我正在尝试将所有<div>
标记转换为<p>
标记,如果标记中没有使用以下javascript正则表达式的样式属性。 (最后得到html)
// if <div> has any attribute then do not convert in <p> tag
str = str.replace(/<div>([\w\W]*?)<\/div>/gi, '<p>$2</p>');
但是这个regx的输出很奇怪
输出HTML:注意结尾处的意外'<p>$2</p>'
,Zoltan和祝贺文字丢失了。
<br>
@abc Semantics
<br>
<a href="http://abc.com">http://abc.com</a>
<br>
xxxx5555
<br>
Mail address:
<a target="blank" href="/abc-abc-semantics">@abc</a>
<br>
<br>
<b>
Sub:
</b>
<br>
<br>
Hi abc, <p>$2</p><p>$2</p>;<p>$2</p><p>$2</p>
//我正在应用regx的原始HTML
<br>
@abc Semantics
<br>
<a href="http://abc.com">http://abc.com</a>
<br>
xxxx5555
<br>
Mail address: <a href="/abc-abc-semantics" target="blank">@abc</a>
<br>
<br>
<b> Sub: </b>
<br> <br>
Hi abc,
<div><br></div>
<div>congratulations :D</div>
<div><br></div>
;
<div>Zoltan</div>
答案 0 :(得分:1)
group 2
中没有regex
,因此$2
仅被视为$2
,并且没有替换它。
您需要使用$1
: -
str = str.replace(/<div>([\w\W]*?)<\/div>/gi, '<p>$1</p>');
上的演示
答案 1 :(得分:1)
尝试使用$1
而非$2
,因为正则表达式中没有第2组。
所以新代码将是:
str = str.replace(/<div>([\w\W]*?)<\/div>/gi, '<p>$1</p>');