เมื่อใช้โปรแกรมแก้ไขคุณจะพบจุดหนึ่งนั่นคือปัญหาการปิดแท็กปัญหานี้ร้ายแรงมากเพราะอาจทำให้รูปแบบโดยรวมของหน้าเว็บเสียหายได้ ฉันเพิ่งเห็นฟังก์ชันนี้ในไลบรารีฟังก์ชันของ PJ ฉันรู้สึกว่าแนวคิดนี้ไม่ดีนัก แต่ก็ค่อนข้างจะสมบูรณ์แบบเมื่อปิดแท็ก 555
แก้ไขเนื้อหาของแต่ละองค์ประกอบในอาร์เรย์ arrTags เพื่อให้บรรลุฟังก์ชันการปิดแท็กใดๆ
ผมได้เพิ่มความคิดเห็นบางส่วนเพื่ออำนวยความสะดวกให้ทุกคนได้เรียนร่วมกัน
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น closeUBB(strContent)
-
'ปิด UBB โดยอัตโนมัติ
-
Dim arrTags, i, OpenPos, ClosePos, ใหม่, strMatchs, j, Match
Set re = New RegExp 'ประกาศวัตถุใหม่
re.IgnoreCase = True 'ตั้งค่าว่าอักขระจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่
re.Global = True 'ตั้งค่าความพร้อมใช้งานทั่วโลก
arrTags = Array(code, quote, list, color, align, font, size, b, i, u, html) 'สร้างอาร์เรย์และจัดเก็บแท็กที่เกี่ยวข้องซึ่งจำเป็นต้องตรวจสอบเพื่อปิด
สำหรับ i = 0 ถึง UBound(arrTags) 'วนซ้ำเพื่อตรวจจับแต่ละองค์ประกอบในอาร์เรย์
OpenPos = 0 'เริ่มต้นจำนวนแท็กเริ่มต้นของป้ายกำกับปัจจุบัน
ClosePos = 0 'เริ่มต้นจำนวนแท็กปิดของแท็กปัจจุบัน
re.Pattern = /[ + arrTags(i) + (=[^/[/]]+|)/] 'เริ่มตัดสินจำนวนแท็กเริ่มต้นและแท็กสิ้นสุดตามลำดับ
ตั้งค่า strMatchs = re.Execute (strContent)
สำหรับการแข่งขันแต่ละครั้งใน strMatchs
OpenPos = OpenPos + 1
ต่อไป
re.Pattern = /[/ + arrTags(i) + /]
ตั้งค่า strMatchs = re.Execute (strContent)
สำหรับการแข่งขันแต่ละครั้งใน strMatchs
ClosePos = ClosePos + 1
ต่อไป
สำหรับ j = 1 ถึง OpenPos - ClosePos 'เมื่อจำนวนแท็กเริ่มต้นและแท็กสิ้นสุดไม่สอดคล้องกัน ให้ปิดแท็กปัจจุบัน
strContent = strContent + [/ + arrTags(i) + ]
ต่อไป
ต่อไป
closeUBB = strContent
ตั้งค่าใหม่ = ไม่มีอะไร
ฟังก์ชันสิ้นสุด
หมายเหตุเกี่ยวกับ closehtml เหมือนกับข้างต้น
คัดลอกรหัสรหัสดังต่อไปนี้:
ฟังก์ชั่น closehtml(strContent)
-
'ปิด html โดยอัตโนมัติ'
-
Dim arrTags, i, OpenPos, ClosePos, ใหม่, strMatchs, j, Match
ตั้งใหม่ = RegExp ใหม่
re.IgnoreCase = จริง
re.Global = จริง
arrTags = อาร์เรย์ (p, DIV, สแปน, ตาราง, ul, แบบอักษร, b, u, i, h1, h2, h3, h4, h5, h6)
สำหรับ i = 0 ถึง UBound (arrTags)
โอเพ่นโพส = 0
ปิดโพส = 0
ใหม่รูปแบบ = /< + arrTags(i) + ( [^/</>]+|)/>
ตั้งค่า strMatchs = re.Execute (strContent)
สำหรับการแข่งขันแต่ละครั้งใน strMatchs
OpenPos = OpenPos + 1
ต่อไป
re.Pattern = /</ + arrTags(i) + />
ตั้งค่า strMatchs = re.Execute (strContent)
สำหรับการแข่งขันแต่ละครั้งใน strMatchs
ClosePos = ClosePos + 1
ต่อไป
สำหรับ j = 1 ถึง OpenPos - ClosePos
strContent = strContent + </ + arrTags(i) + >
ต่อไป
ต่อไป
closehtml = strContent
ตั้งค่าใหม่ = ไม่มีอะไร
ฟังก์ชันสิ้นสุด