0

私の Web ページでは、HTML ソース コードの一部が他のパーティによって提供されています。たとえば、次のように、返されるソース コードが不完全な場合があることがわかりました。

<table>
    <tr valign='top'>
        <td width=95>
            <img src='test.jpg'>
        </td>
        <td>
            <h2><a style='font-size: 13px' href='tset.html'>test</a></h2>
            <h1><a href='test.html'>test</a></li>

HTML ソース コードが不完全かどうかを確認する機能があるかどうかを確認したいのですが。

substr()最初と最後の HTML タグをチェックするために使用するアイデアがありますが、うまくいくかどうかはわかりません。

ありがとう

4

2 に答える 2

1

応答が同じタグで開始および終了することを確認することは、十分なヒューリスティックのようです。

  • 誤検知率がゼロ: 入力が有効な場合、それは受け入れられます。
  • 偽陰性率が非常に低い: 有効な HTML をランダムな時点で終了する場合、タグで終了する可能性は十分に低く、同じタグであることを確認するとさらに役立ちます。
  • 偽陰性率がゼロの場合もあります: 特定のケースで最も外側の要素をネストできない場合 ( htmlbody両方が適用さtableれ、最近では s がネストされることはめったにありません)、無効な入力に間違いなく気付くでしょう。

結果を として割り当ててinnerHTML読み戻すと、誤検出が発生する可能性があることに注意してください。ブラウザーは、HTML が適切であると判断した場合でも、HTML を自由に再配置できます。たとえば、Internet Explorer は要素の属性をアルファベット順に並べ替えるのが大好きです (何らかの理由で)。また、無効な HTML を渡してもブラウザは文句を言いません。

正規表現の用語:^<(\w+)[^>]*>.*<\/\1>$

if(/^<(\w+)[^>]*>.*<\/\1>$/.test(input)){
  // the input is most likely not truncated
}else{
  // the input is definitely not valid
  // (or it contains multiple top-level elements)
}
于 2013-02-19T13:22:50.447 に答える
0

Html バリデーターを使用できます。DOCTYPE を正しく指定すると、無効なものがすべて検出されます。

  1. HTML バリデータ W3c
  2. HTML整頓
于 2013-02-19T12:55:35.053 に答える