Эта функция предназначена для закрытия общих тегов 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
ClosePosClosePos = ClosePos + 1
Следующий
For j = 1 To OpenPos - ClosePos 'Если количество начальных и конечных тегов несовместимо, закройте текущий тег.
strContentstrContent = strContent + [/ + arrTags(i) + ]
Следующий
Следующий
closeUBB = стрКонтент
Установить re=Ничего
Конечная функция
программный код
Функция closeHTML(strContent)
'************************************
'Автоматически закрывать HTML
'************************************
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
Установить re = Новое регулярное выражение
re.IgnoreCase = Истина
re.Global = Истина
arrTags = Array(p, div, span, table, ul, font, b, u, i, h1, h2, h3, h4, h5, h6)
Для i = 0 To UBound(arrTags)
ОпенПос = 0
ЗакрытьПос = 0
re.Pattern = /< + arrTags(i) + ( [^/</>]+|)/>
Установите strMatchs = re.Execute(strContent)
Для каждого совпадения в strMatchs
ОпенПосОпенПос = ОпенПос + 1
Следующий
re.Pattern = /</ + arrTags(i) + />
Установите strMatchs = re.Execute(strContent)
Для каждого совпадения в strMatchs
ClosePosClosePos = ClosePos + 1
Следующий
Для j = 1 To OpenPos — ClosePos
strContentstrContent = strContent + </ + arrTags(i) + >
Следующий
Следующий
closeHTML = стрКонтент
Установить re=Ничего
Конечная функция
Ниже приведен код функции pjblog, но комментариев нет. Рекомендуется обращаться к приведенным выше комментариям для изучения и исследования.
Скопируйте код кода следующим образом:
'************************************
'Автоматически закрывать UBB
'************************************
Функция closeUBB(strContent)
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
Установить re = Новое регулярное выражение
re.IgnoreCase = Истина
re.Global = Истина
arrTags = Массив (код, цитата, список, цвет, выравнивание, шрифт, размер, b, i, u, html)
Для i = 0 To 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 To OpenPos — ClosePos
strContent = strContent + [/ + arrTags(i) + ]
Следующий
Следующий
closeUBB = стрКонтент
Конечная функция
'************************************
'Автоматически закрывать HTML
'************************************
Функция closeHTML(strContent)
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
Установить re = Новое регулярное выражение
re.IgnoreCase = Истина
re.Global = Истина
arrTags = Array(p, div, span, table, ul, font, b, u, i, h1, h2, h3, h4, h5, h6)
Для i = 0 To 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 To OpenPos — ClosePos
strContent = strContent + </ + arrTags(i) + >
Следующий
Следующий
closeHTML = стрКонтент
Конечная функция