- ベストアンサー
[javascript]</TDと</TR以外で始まるHTMLタグを消去する正規表現
HTML形式の文字列から</TDと</TRで始まるタグ以外を消去したいのですが、以下の記述ではうまくいきませんでした。 test = test.replace(/<\/T[^RD][^>]*>/g,""); どのように記述すればよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません、考えすぎた。 否定読みはできたのでこんな感じで? <script> var test="<tr><td>aaa</td><th>bbb</th></tr>"; test=test.replace(/<(?!\/t[dr]).*?>/gi,""); alert(test); </script>
その他の回答 (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>
お礼
nice