この関数は、一般的な HTML と UBB タグのクローズを実現する機能です。これまで pjblog で見たことがありましたが、この関数は使用したことがありません。pjblog の関数を参照することをお勧めします。関数 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 '開始タグと終了タグの数が一致しない場合、現在のタグを閉じます
strContentstrContent = strContent + [/ + arrTags(i) + ]
次
次
closeUBB = strContent
re=Nothing を設定する
終了機能
プログラムコード
関数 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 へ
strContentstrContent = strContent + </ + arrTags(i) + >
次
次
closeHTML = strContent
re=Nothing を設定する
終了機能
以下はpjblogの機能コードですが、コメントはありません。学習や研究のために上記のコメントを参照することをお勧めします。
次のようにコードをコピーします。
「************************************
'UBBを自動的に閉じる
「************************************
関数 closeUBB(strContent)
Dim arrTags、i、OpenPos、ClosePos、re、strMatchs、j、Match
re = 新しい正規表現を設定します
re.IgnoreCase = True
re.Global = True
arrTags = Array(コード、引用符、リスト、色、配置、フォント、サイズ、b、i、u、html)
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) + ]
次
次
closeUBB = strContent
終了機能
「************************************
'HTMLを自動的に閉じる
「************************************
関数 closeHTML(strContent)
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
終了機能