Bei der Verwendung des Editors werden Sie auf einen Punkt stoßen, nämlich auf das Problem beim Schließen von Tags. Dieses Problem ist sehr schwerwiegend, da es dazu führen kann, dass der Gesamtstil der angezeigten Webseite beschädigt wird. Ich habe diese Funktion kürzlich in der Funktionsbibliothek von PJ gesehen. Ich finde die Idee etwas dürftig, aber sie ist relativ perfekt. Es ist nur eine Frage der Reihenfolge beim Schließen des Tags, haha.
Ändern Sie den Inhalt jedes Elements im Array arrTags, um die Funktion zum Schließen jedes Tags zu erreichen.
Hier habe ich einige Kommentare hinzugefügt, um allen das gemeinsame Lernen zu erleichtern.
Kopieren Sie den Codecode wie folgt:
Funktion closeUBB(strContent)
'***********************************
„UBB automatisch schließen.“
'***********************************
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
Set re = New RegExp 'Deklarieren Sie das re-Objekt
re.IgnoreCase = True 'Legen Sie fest, ob bei Zeichen zwischen Groß- und Kleinschreibung unterschieden wird
re.Global = True 'Globale Verfügbarkeit festlegen
arrTags = Array(code, quote, list, color, align, font, size, b, i, u, html) 'Erstellen Sie ein Array und speichern Sie zugehörige Tags, die auf Schließung überprüft werden müssen
For i = 0 To UBound(arrTags) 'Schleife, um jedes Element im Array zu erkennen
OpenPos = 0 'Initialisiere die Anzahl der Start-Tags des aktuellen Etiketts
ClosePos = 0 'Initialisieren Sie die Anzahl der End-Tags des aktuellen Tags
re.Pattern = /[ + arrTags(i) + (=[^/[/]]+|)/] 'Beginne mit der Beurteilung der Anzahl der Start- und End-Tags
Setze strMatchs = re.Execute(strContent)
Für jede Übereinstimmung in strMatchs
OpenPos = OpenPos + 1
Nächste
re.Pattern = /[/ + arrTags(i) + /]
Setze strMatchs = re.Execute(strContent)
Für jede Übereinstimmung in strMatchs
ClosePos = ClosePos + 1
Nächste
Für j = 1 To OpenPos - ClosePos 'Wenn die Anzahl der Start- und End-Tags inkonsistent ist, schließen Sie das aktuelle Tag
strContent = strContent + [/ + arrTags(i) + ]
Nächste
Nächste
closeUBB = strContent
Setze re=Nothing
Funktion beenden
Die Hinweise zu closehtml sind dieselben wie oben
Kopieren Sie den Codecode wie folgt:
Funktion closehtml(strContent)
'***********************************
'HTML automatisch schließen
'***********************************
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
Setze re = New RegExp
re.IgnoreCase = True
re.Global = True
arrTags = Array(p, DIV, span, table, ul, Schriftart, b, u, i, h1, h2, h3, h4, h5, h6)
Für i = 0 To UBound(arrTags)
OpenPos = 0
ClosePos = 0
re.Pattern = /< + arrTags(i) + ( [^/</>]+|)/>
Setze strMatchs = re.Execute(strContent)
Für jede Übereinstimmung in strMatchs
OpenPos = OpenPos + 1
Nächste
re.Pattern = /</ + arrTags(i) + />
Setze strMatchs = re.Execute(strContent)
Für jede Übereinstimmung in strMatchs
ClosePos = ClosePos + 1
Nächste
Für j = 1 Zu OpenPos - ClosePos
strContent = strContent + </ + arrTags(i) + >
Nächste
Nächste
closehtml = strContent
Setze re=Nothing
Funktion beenden