エディターを使用すると、タグの終了の問題が発生します。この問題は、表示される Web ページ全体のスタイルを損なう可能性があるため、非常に深刻です。最近 PJ の関数ライブラリでこの関数を見たことがありますが、アイデアが少し貧弱な気がしますが、タグを閉じるときの順序の問題です (笑)。
配列 arrTags の各要素の内容を変更して、タグを閉じる機能を実現します。
ここでは、皆さんが一緒に勉強しやすいように、いくつかのコメントを追加しました。
次のようにコードをコピーします。
関数 closeUBB(strContent)
「************************************
'UBBを自動的に閉じる
「************************************
Dim arrTags、i、OpenPos、ClosePos、re、strMatchs、j、Match
Set re = New RegExp 're オブジェクトを宣言します
re.IgnoreCase = True '文字の大文字と小文字を区別するかどうかを設定します
re.Global = True 'グローバルな可用性を設定します
arrTags = Array(code, quote, list, color, align, font, size, b, i, u, html) '配列を作成し、クロージャをチェックする必要がある関連タグを格納します
For i = 0 To UBound(arrTags) '配列内の各要素を検出するループ
OpenPos = 0 '現在のラベルの開始タグの数を初期化します
ClosePos = 0 '現在のタグの終了タグの数を初期化します
re.Pattern = /[ + arrTags(i) + (=[^/[/]]+|)/] '開始タグと終了タグの数をそれぞれ判定開始
strMatchs = re.Execute(strContent) を設定します。
strMatchs の各一致について
オープンポス = オープンポス + 1
次
re.Pattern = /[/ + arrTags(i) + /]
strMatchs = re.Execute(strContent) を設定します。
strMatchs の各一致について
閉じる位置 = 閉じる位置 + 1
次
For j = 1 To OpenPos - ClosePos '開始タグと終了タグの数が一致しない場合、現在のタグを閉じます
strContent = strContent + [/ + arrTags(i) + ]
次
次
closeUBB = strContent
re=Nothing を設定する
終了機能
closehtmlに関する注意事項は上記と同様
次のようにコードをコピーします。
関数 closehtml(strContent)
「************************************
'HTMLを自動的に閉じる
「************************************
Dim arrTags、i、OpenPos、ClosePos、re、strMatchs、j、Match
re = 新しい正規表現を設定します
re.IgnoreCase = True
re.Global = True
arrTags = Array(p、DIV、span、テーブル、ul、フォント、b、u、i、h1、h2、h3、h4、h5、h6)
i = 0 から UBound(arrTags) へ
オープンポジション = 0
閉じる位置 = 0
re.Pattern = /< + arrTags(i) + ( [^/</>]+|)/>
strMatchs = re.Execute(strContent) を設定します。
strMatchs の各一致について
オープンポス = オープンポス + 1
次
re.Pattern = /</ + arrTags(i) + />
strMatchs = re.Execute(strContent) を設定します。
strMatchs の各一致について
閉じる位置 = 閉じる位置 + 1
次
j = 1 の場合 OpenPos - ClosePos へ
strContent = strContent + </ + arrTags(i) + >
次
次
closehtml = strContent
re=Nothing を設定する
終了機能