0

私はテキスト エディターで作業しており、ページがレンダリングされるときに、次の JavaScript 正規表現を使用してタグにスタイル属性がない場合、すべての<div>タグをタグに変換しようとしています。<p>(最後にソース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の出力は奇妙です

OUTPUT 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,&nbsp;<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,&nbsp;
<div><br></div>

<div>congratulations :D</div>

<div><br></div>
;
<div>Zoltan</div>
4

2 に答える 2

1

group 2あなたの中にはないregexので、それ$2$2ただとみなされ、それが行われた交換はありません。

使用する必要があります$1:-

str = str.replace(/<div>([\w\W]*?)<\/div>/gi, '<p>$1</p>');

http://fiddle.re/v0jbのデモを参照してください

于 2013-01-29T06:52:51.547 に答える
1

正規表現にはグループ2がないため、では $1なくを使用してみてください。したがって、新しいコードは次のようになります。$2

str = str.replace(/<div>([\w\W]*?)<\/div>/gi, '<p>$1</p>');
于 2013-01-29T07:19:17.167 に答える