• ベストアンサー

[javascript]</TDと</TR以外で始まるHTMLタグを消去する正規表現

HTML形式の文字列から</TDと</TRで始まるタグ以外を消去したいのですが、以下の記述ではうまくいきませんでした。 test = test.replace(/<\/T[^RD][^>]*>/g,""); どのように記述すればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

すみません、考えすぎた。 否定読みはできたのでこんな感じで? <script> var test="<tr><td>aaa</td><th>bbb</th></tr>"; test=test.replace(/<(?!\/t[dr]).*?>/gi,""); alert(test); </script>

fasdfasdf
質問者

お礼

nice

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

「"<"の後、"/TR"か"/TD"でない文字列があり、">"で終わる」 こういう解釈になるんでしょうかね。 test.replace/<\s*(?!\/\s*TR|\/\s*TD)[^>]*>/gi,""); 大文字小文字を区別しないiオプションも付けてみました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

javascriptの正規表現には先読みや後読みがないみたいなので 一度別のモノに変換しておくとかどうでしょう? <script> test="<tr><td>aaa</td><th>bbb</th></tr>"; test = test.replace(/<(\/t[dr].*?)>/g,"__lt__$1__gt__"); test = test.replace(/<.*?>/g,""); test = test.replace(/__lt__/g,"<"); test = test.replace(/__gt__/g,">"); alert(test) </script>