에디터를 사용하다 보면 한 가지 문제, 즉 태그가 닫히는 문제를 만나게 됩니다. 이 문제는 표시되는 웹 페이지의 전체적인 스타일을 손상시킬 수 있기 때문에 매우 심각합니다. 최근에 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의 각 일치 항목에 대해
닫기Pos = 닫기Pos + 1
다음
For j = 1 To OpenPos - ClosePos '시작 태그와 끝 태그의 개수가 일치하지 않으면 현재 태그를 닫습니다.
strContent = strContent + [/ + arrTags(i) + ]
다음
다음
closeUBB = strContent
다시=아무것도 설정하지 않음
기능 종료
closehtml에 대한 참고 사항은 위와 동일합니다.
다음과 같이 코드 코드를 복사합니다.
함수 closehtml(strContent)
'************************************
'HTML을 자동으로 닫습니다.
'************************************
Dim arrTags, i, OpenPos, ClosePos, re, strMatchs, j, Match
re = New RegExp로 설정
re.IgnoreCase = 참
re.Global = 참
arrTags = 배열(p, DIV, 범위, 테이블, 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의 각 일치 항목에 대해
닫기Pos = 닫기Pos + 1
다음
j = 1의 경우 OpenPos로 - ClosePos
strContent = strContent + </ + arrTags(i) + >
다음
다음
closehtml = strContent
다시=아무것도 설정하지 않음
기능 종료