This recently in the function library of PJ to see the functions, feel the idea of a point, but relatively perfect, just close the label when the order problem, hehe
Modify the contents of each element in the array arrtags to achieve the function of closing any label.
Here, I have added some comments to facilitate learning together
Copy Code code as follows:
Function Closeubb (strcontent)
'*************************************
' Auto Close Ubb
'*************************************
Dim arrtags, I, Openpos, Closepos, Re, Strmatchs, J, Match
Set re = New RegExp ' affirm re object
Re. IgnoreCase = True ' Sets whether character case is case-sensitive
Re. Global = True ' Set overall availability
Arrtags = Array ("code", "quote", "list", "Color", "Align", "Font", "Size", "B", "I", "U", "html") ' Set up an array, storage related need to detect whether the closed label
For i = 0 to UBound (arrtags) ' loops each element in the array for detection
Openpos = 0 ' Initializes the number of current tag start tags
Closepos = 0 ' Initializes the number of current tag end tags
Re. Pattern = "\[" + arrtags (i) + "(=[^\[\]]+|) \] "' Start to judge the number of start and end tags separately
Set Strmatchs = Re. Execute (strcontent)
For the Match in Strmatchs
Openpos = Openpos + 1
Next
Re. Pattern = "\[/" + arrtags (i) + "\]"
Set Strmatchs = Re. Execute (strcontent)
For the Match in Strmatchs
Closepos = Closepos + 1
Next
For j = 1 to Openpos-closepos ' when the start and end tag numbers are inconsistent, close the current label
Strcontent = strcontent + "[/" + arrtags (i) + "]"
Next
Next
Closeubb = strcontent
Set re = Nothing
End Function
Closehtml's comments ditto
Copy Code code as follows:
Function closehtml (strcontent)
'*************************************
' Auto-close HTML
'*************************************
Dim arrtags, I, Openpos, Closepos, Re, Strmatchs, J, Match
Set re = New RegExp
Re. IgnoreCase = True
Re. Global = True
Arrtags = Array ("P", "DIV", "span", "table", "ul", "Font", "B", "U", "I", "H1", "H2", "H3", "H4", "H5", "H6")
For i = 0 to UBound (arrtags)
Openpos = 0
Closepos = 0
Re. Pattern = "\<" + arrtags (i) + "([^\<\>]+|) \> "
Set Strmatchs = Re. Execute (strcontent)
For the Match in Strmatchs
Openpos = Openpos + 1
Next
Re. Pattern = "\</" + arrtags (i) + "\>"
Set Strmatchs = Re. Execute (strcontent)
For the Match in Strmatchs
Closepos = Closepos + 1
Next
For j = 1 to Openpos-closepos
Strcontent = strcontent + "</" + arrtags (i) + ">"
Next
Next
closehtml = strcontent
Set re = Nothing
End Function