• 締切済み

HTML文から特定のタグ以外のタグを除去するには

JavaScriptによってHTML文字列からすべてのタグを一律に除去するのであれば、「replace(/(<([^>]+)>)/ig, "")」で実装が可能です。 今回はこれに加え、特定のタグだけは削除せず、そのまま維持するように修正したいと考えています。 例)<h1>Text</h1><input type="text">Text</input><b>Text</b> → <h1>Text</h1>Text<b>Text</b> こちらはイメージであり、正しくは動作しません。どのようにすれば意図した実装ができるでしょうか。 replace(/<(?!(font|h\d|p|hr|pre|blockquote|ol|ul|em|strong|small|...)).*?>/ig)

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

一旦特定のタグを他のマーカーに変換した方がよいかと・・ <h1>・・<b>・・</b>・</h1>  ~h1~・・<b>・・</b>・~/h1~   ~h1~・・・・・~/h1~    <h1>・・<b>・・</b>・</h1> テキストエディタ使いな者で・・・(^^)

Tank2005
質問者

補足

それだとタグを無効化する手間が増えるので、有効な手段とはいえなさそうです。

関連するQ&A

  • <p>タグはどこまで囲む?

    ただいまCSS勉強中です。 いつもどこまで<p>タグで囲まなくてはいけないのか悩むのですが、 「ブロックレベル要素同士は入れ子にならない」 「ブロックレベルの中に含まれるのはインライン要素だけ」 と考えていいのでしょうか。 でもdivの中にpを入れることもありますよね?? ブロックレベル要素:h,p,ul,dl,blockquote,divなど インライン要素:a,img,em,strong,brなど よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • タグの事で?

    現在、ホームページビルダー8でホームページを作成しています。タグの事で質問しますが、<strong>~</strong>や<em>~</em>などビルダーでは手書きで直すしかないような感じですが、このタグは大文字で書いたほうがいいのでしょうか、それとも小文字で書いたほうがいいでしょうか?教えて下さい。あと<B>と<strong>ではどのようにちがうのでしょうか?<em>タグも一緒に教えて下さい。はっきり言ってタグの事はすごく初心者です。よろしくお願いします!

  • cHTMLのタグはHDMLでは

    cHTMLで言う <hr> <ul> <pre> <bling> <font> などのタグはHDMLではどのようなタグを利用して使えばいいのでしょうか? また、このような同じ効果のタグを比べているHPがあれば教えてください

    • ベストアンサー
    • HTML
  • strongタグについて

    HTML等全く知識がなくテンプレートやパーツなどは全てコピペで作成してきました。 以下のstrongタグはSEO的に有効でしょうか? <ul> <li class="menu_len" onmouseover="this.className='menu_len_on'" onmouseout="this.className='menu_len'"><a href="#" id="myText" onmouseover="this.innerHTML='文字A'" onmouseout="this.innerHTML='<strong>文字B</strong>'">文字B</a> <ul> 上記のようにすると文字Bの大きさが変わらずに表示できました。 この方法でstrongタグはSEO対策的に有効でしょうか? 文字Bの大きさを変えずにstrongやh3タグを使用する方法をご教授お願いします。(できれば文字Aも) それと、同一ページにh3タグを20~30ほど使用したいのですが、違反等の問題はないでしょうか?

  • SEO対策 見出しタグにさらにstrongタグ

    SEOについて解らないことがあります。 H1タグなどで書いた見出し文書にさらにstrongやemなどのタグを使って論理強調をすることに効果はあるのでしょうか? また、スパムとみなされないでしょうか? よろしくお願いします。

  • hタグの背景画像は長く、中のテキストは途中改行希望

    CSSです。 よく、h1とかh2タグをページのローカルコンテンツエリアの一番上なんかに 配置させて、背景画像をつけて、その上にhタグのテキストを入れる表現手法がありますよね。 このとき、背景画像はローカルコンテンツ一杯のサイズで表示させるんですが、 テキストはパディングを効かせて背景画像の四方ギリギリまで表示されないようにしますよね。 例えば、背景画像がwidth:600px、height: 100pxとして、 paddingは、padding-rightだけを200pxとかにします。理由は背景画像の右スミに グラフィックがあり、その上までテキストが来てしまうと読めなくなってしまうから、 そのグラフィックの上にテキストが載る直前あたりでテキストを改行をさせたいから 右側のパディングだけを広くとります。 しかしこのように表示してくれません。 いったいどうしてで、解決方法は何でしょうか? 実際のソースは以下です。 一番目のリセットスタイルのCSS ------------------------------------------------------------ * { margin: 0; padding: 0; border: 0; background-color: transparent; color: #000; font-size: 100%; font-weight: normal; font-style: normal; text-decoration: none; } body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,blockquote,table,th,td,strong { margin: 0; padding: 0; } ------------------------------------------------------------ 二番目の通常のCSS ------------------------------------------------------------ h2#title {   clear: both;   float: left;   height: 110px;   background: url (../img/cmn/bg_h3.jpg) no-repeat;   color: #fff;   font-size: 1.6em;   padding: 20px 200px 0 20px; } ------------------------------------------------------------ display: inlineだと改行されませんよね。 なので、hタグにdisplayを未指定にしています。はデフォルトはblockなので。 宜しくお願いいたします。

    • ベストアンサー
    • CSS
  • HTMLのテキスト部分を外部で管理

    HTML上のニュースなどの更新情報を誰でもいじれるように、 外部のテキストデータで管理できればと思っております。 例えば、下記のように日付と内容のそれぞれA~Dを 1つのファイル内で管理する方法で何か良い方法はありますでしょうか? <ul> <li><em>日付A</em>内容A</li> <li><em>日付B</em>内容B</li> </ul> <ul> <li><em>日付C</em>内容C</li> <li><em>日付D</em>内容D</li> </ul> 初心者で申し訳ありません…。 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • リセットCSSはブラウザではどう処理されているのか

    まず、ユニバーサルセレクタによる方法では、対象のWebサイトで使われいるタグ以外、全て(ブラウザに登録されてあるタグ?)もブラウザで処理されるのでしょうか? 例えば、そのWebサイトでh1、h2が使われていたとしたら、使われていないh3やh4などのマージン・パディングも0になるようにブラウザ内で処理されているのでしょうか? また、ユニバーサルセレクタではなく以下のように指定してある場合は、ブラウザはここに記述してあるタグだけをマージン・パディングを0にするのでしょうか? body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6, pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{ margin:0;padding:0; } その他のブラウザに登録されてるタグは処理されない、ノータッチということですかね。

    • ベストアンサー
    • CSS
  • li タグ全体をリンクに。

    <ul> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> </ul> 上記ですが、リストのどこを押してもラジオがチェックされるようCSSで実装したいと、考えています。html 5 で 最新スマフォならというところです。 どうぞよろしくおねがいいたします。

    • ベストアンサー
    • HTML
  • タグを直接タイプし実行したい

    解りにくくて、すみません。 テキストエリア等に、タグを打った場合にそのままタグが適用された 形状で表示したいのです。 ブログなどであるアレです。 (Bボタンを押すと、太字になって表示・書込みできる) しかし、テキストエリアには当然テキストしか入りません。 どのようにして実装しているのでしょうか?? よろしくお願いします。

専門家に質問してみよう