0

ユーザーが<pre></pre>タグを使用してコメントや記事にコードを表示できるようにしましたが、解決に苦労している問題に遭遇しました。ユーザーが HTML タグを閉じられなかった場合、たとえば次のようになります。

    <pre>
        <html>
            <head>

            </head>
    </pre>

コメントは空白のようです。私が探しているのは、ユーザーが見逃した HTML タグを自動的に閉じる何らかの機能です。

前もって感謝します。

4

2 に答える 2

2

フレームワークを使わないと厄介になりますが、勇気は賞賛されます。うまくいけば、これは正しい方向への微調整になるでしょう。

私が考えることができる最も単純な非フレームワークソリューションは、スタックを使用して、ユーザーからの文字列を解析しながらタグをプッシュおよびポップすることです。

擬似コード

userData = getUserData();
stack = array();
loop (line in userData) {
   matches = search for "<*>"; // may have multiple on one line
   loop (match in matches) {
      tagName = getTagNameFrom(match);
      if ("/" is not found) {
         push tagName on stack;
      } else if ("/" is found) {
         pop tagName off stack; 
         // There was an error if the stack is
         // empty or the tagName that was popped was not
         // the same.
      }
   }
}

これは決して包括的なものではなく、ここではフレームワークが本当に推奨されますが、少し役立つことを願っています。

于 2012-04-04T00:08:02.397 に答える
0

HTML Tidyを使用して、この問題を解決できます。閉じられていないタグを自動的に見つけて閉じます。

プロジェクトページ

于 2012-04-03T23:48:06.693 に答える