アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTML形式の文字列から</TDと</TRで始まるタグ以外を消去したいのですが、以下の記述ではうまくいきませんでした。

test = test.replace(/<\/T[^RD][^>]*>/g,"");

どのように記述すればよいでしょうか?

A 回答 (3件)

すみません、考えすぎた。


否定読みはできたのでこんな感じで?

<script>
var test="<tr><td>aaa</td><th>bbb</th></tr>";
test=test.replace(/<(?!\/t[dr]).*?>/gi,"");
alert(test);
</script>
    • good
    • 0
この回答へのお礼

nice

お礼日時:2010/03/24 21:04

「"<"の後、"/TR"か"/TD"でない文字列があり、">"で終わる」


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

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>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!