แนะนำ: การเขียนโปรแกรมขั้นสูง ASP 3.0 (32) 7.2.4 ข้อผิดพลาดสคริปต์ไคลเอนต์จนถึงตอนนี้เราได้เรียนรู้เกี่ยวกับข้อผิดพลาดจาก ASP อย่างไรก็ตาม ASP มักจะใช้เพื่อสร้างหน้าเว็บที่มีสคริปต์ไคลเอนต์ หากองค์ประกอบ <script> ที่มีรหัสไคลเอนต์ไม่ได้ตั้งค่าเป็น runat = เซิร์ฟเวอร์
ครั้งสุดท้ายที่เราได้พูดคุยเกี่ยวกับวิธีการใช้วัตถุนิพจน์ทั่วไปเพื่อให้ได้การตรวจสอบข้อมูลต่าง ๆ ใน ASP บทความอธิบายฟังก์ชั่นที่ทรงพลังของวัตถุนิพจน์ทั่วไป ถัดไปลองดูฟังก์ชั่นอื่น ๆ ของวัตถุนิพจน์ทั่วไป เมื่อเราท่องอินเทอร์เน็ตโดยเฉพาะอย่างยิ่งเมื่อเรียกดูฟอรัมต่างๆเรามักจะเห็นรหัสคำ UBB รหัส UBB คืออะไร? รหัส UBB เป็นตัวแปรของ HTML ซึ่งเป็นแท็กพิเศษที่ใช้โดย Ultimate Bulletin Board (โปรแกรม BBS ในต่างประเทศและสถานที่หลายแห่งในประเทศจีนใช้โปรแกรมนี้) เพื่อหลีกเลี่ยงการโจมตีโดยไม่ได้ตั้งใจหรือโดยเจตนาของผู้ใช้ในฟอรัมด้วยรหัส HTML ฟอรัมต่าง ๆ โดยทั่วไปบล็อกรหัส HTML อย่างไรก็ตามเพื่อให้ฟอรัมมีสีสันมากขึ้นฟอรัมจะเปิดแท็กที่กำหนดเองบางอย่างตามลำดับคล้ายกับแท็กใน HTML เช่น [url], [/url], [สีแดง], [/red] ด้วยวิธีนี้สามารถให้ฟังก์ชั่นบางอย่างเทียบเท่ากับรหัส HTML และสามารถหลีกเลี่ยงฟอรัมจากการโจมตีที่เป็นอันตราย แท็กที่กำหนดเองเหล่านี้เป็นที่รู้จักกันทั่วไปว่าเป็นรหัส UBB ในปัจจุบันฟอรัมที่ทันสมัยทั้งหมดรองรับรหัส UBB เช่นฟอรัมของเครือข่ายเทคโนโลยีไดนามิกรองรับรหัส UBB เป็นอย่างดี ตอนนี้เรามาใช้วัตถุนิพจน์ทั่วไปเพื่อใช้รหัส UBB ที่มีสีสันของเราเอง
ก่อนอื่นฝั่งเซิร์ฟเวอร์ของคุณ (IIS หรือ PWS) ต้องมีสภาพแวดล้อมการสนับสนุน VBScript5.0 ซึ่งโดยทั่วไปหมายความว่าคุณสามารถรองรับวัตถุนิพจน์ทั่วไปได้หลังจากติดตั้ง IE5.x แล้ว
เกี่ยวกับวิธีการทั่วไปและวิธีการใช้แอตทริบิวต์ของวัตถุนิพจน์ทั่วไปฉันได้แนะนำในบทความนี้แล้วเกี่ยวกับการใช้วัตถุนิพจน์ทั่วไปเพื่อใช้การตรวจสอบข้อมูลใน ASP คุณสามารถอ้างถึงบทความนั้น ที่นี่ฉันจะแนะนำวิธีการวัตถุนิพจน์ปกติหลักที่ใช้รหัส UBB: แทนที่ () วิธี
ไวยากรณ์ของวิธีการแทนที่มีดังนี้:
ไวยากรณ์ของวิธีการแทนที่มีดังนี้:
อธิบาย
แทนที่ข้อความที่พบในการค้นหานิพจน์ทั่วไป
ไวยากรณ์
Object.replace (String1, String2)
ไวยากรณ์ของวิธีการแทนที่มีส่วนต่อไปนี้:
คำอธิบายบางส่วน
ต้องการวัตถุ ชื่อของวัตถุ regexp เสมอ
จำเป็นต้องใช้สตริง 1 String1 คือสตริงที่จะทำการเปลี่ยนข้อความ
จำเป็นต้องใช้ String2 String2 เป็นสตริงข้อความทดแทน
อธิบาย
รูปแบบที่แท้จริงของข้อความที่ถูกแทนที่ถูกตั้งค่าผ่านคุณสมบัติรูปแบบของวัตถุ Regexp
วิธีการแทนที่ส่งคืนสำเนาของ String1 โดยที่ข้อความ regexp.pattern ถูกแทนที่ด้วย String2 หากไม่พบข้อความที่ตรงกันสำเนาของ String1 ต้นฉบับจะถูกส่งกลับ
ต่อไปเราต้องการกำหนดรหัส UBB ที่เราต้องการนำไปใช้ในที่สุด? ฟังก์ชั่นรหัส UBB ที่เราต้องการใช้ในครั้งนี้มีดังนี้:
ไฮเปอร์ลิงก์ URL
เพิ่มไฮเปอร์ลิงก์ลงในข้อความของคุณเพียงแค่แทรกด้วยวิธีต่อไปนี้ (รหัส UBB เป็นตัวหนา)
[url] www.test.net [/url]
โดยการแทรกดังกล่าวข้างต้นรหัส UBB จะเชื่อมโยง URL โดยอัตโนมัติและตรวจสอบให้แน่ใจว่าลิงค์เปิดขึ้นเมื่อผู้ใช้คลิกที่หน้าต่างใหม่
ลิงค์อีเมล
เพิ่มการเชื่อมโยงหลายมิติอีเมลลงในข้อความของคุณเพียงทำตามตัวอย่างต่อไปนี้เพื่อแทรก (รหัส UBB เป็นตัวหนา)
[อีเมล] [email protected] [/อีเมล]
แทรกดังกล่าวข้างต้นรหัส UBB จะเชื่อมโยงไปยังอีเมลโดยอัตโนมัติ
เพิ่มลงในรูปภาพ
เพิ่มรูปภาพลงในข้อความของคุณเพียงทำตามตัวอย่างต่อไปนี้เพื่อแทรก (รหัส UBB เป็นตัวหนา)
[img] http://www.test.net/test.gif [/img]
ในตัวอย่างข้างต้นรหัส UBB จะปล่อยให้ภาพแสดงในข้อความของคุณโดยอัตโนมัติ
แท็กอื่น ๆ
นอกจากนี้ยังมีแท็กเหล่านี้ U Small H1 H2 H3 H4 H4 H6 H6 Strike Blink Sub SUP Pre Big ฟังก์ชั่นของแท็กเหล่านี้เทียบเท่ากับ HTML
[H1] นี่คือชื่อ [/h1]
[/แท็ก] เป็นสิ่งจำเป็น
ให้ย่อหน้าของข้อความแสดงสี
นี่คือแท็กพิเศษ
[#FF0000] คำสีแดง [/#]
#รหัส hexadecimal RGB ของสีตามด้วยเช่นสีแดงคือ FF0000, สีเขียวคือ 00FF00 และสีน้ำเงินคือ 0000FF
สำหรับวิธีการใช้งานของรหัส UBB อื่น ๆ ที่คล้ายกับที่ข้างต้นเราจะใช้การใช้งานรหัส UBB ข้างต้นเป็นตัวอย่างเพื่ออธิบายฟังก์ชั่นที่ทรงพลังของวัตถุนิพจน์ทั่วไป
เราใช้วิธีการแทนที่ () และเทมเพลตที่เกี่ยวข้องเพื่อใช้ฟังก์ชันรหัส UBB ได้อย่างง่ายดาย ที่นี่เราใช้สองฟังก์ชั่นสองฟังก์ชั่นที่เขียนด้วยตัวเองฟังก์ชั่นแรกแทนที่ ฟังก์ชั่นที่ใช้งานโดยฟังก์ชั่นนี้ส่วนใหญ่จะห่อหุ้มวัตถุนิพจน์ทั่วไปและจัดเตรียมพารามิเตอร์รายการสามรายการ:
ลูกตา
พารามิเตอร์นี้ผ่านเทมเพลตการจับคู่สำหรับรหัส UBB
str
พารามิเตอร์นี้ผ่านสตริงที่จะประมวลผลในโหมด UBB เช่นเนื้อหาบทความ
การเล่นซ้ำ
พารามิเตอร์นี้ผ่านภาษารหัส HTML ที่ตรงกับมัน
พารามิเตอร์ทางออกของฟังก์ชัน replacetest คือสตริงที่แทนที่ด้วยการจับคู่แม่แบบ
รหัสฟังก์ชัน replacetest มีดังนี้:
ฟังก์ชั่น replacetest (Patrn, Str, Repstr)
Dim Regex, Str1 'สร้างตัวแปร
str1 = trim (str)
ตั้งค่า regex = ใหม่ regexp 'สร้างนิพจน์ทั่วไป
regex.pattern = โหมด Set Patrn '
regex.ignorecase = true 'ตั้งค่าไม่ว่าจะเป็นตัวพิมพ์เล็กหรือไม่
replacetest = regex.replace (str1, replstr) 'เป็นการแทนที่
ตั้งค่า regex = ไม่มีอะไรทำลายวัตถุนิพจน์ทั่วไป
ฟังก์ชันสิ้นสุด
ฟังก์ชั่นที่สองที่เราต้องการเขียนคือ: UBB () ฟังก์ชั่น ฟังก์ชั่นที่ใช้งานโดยฟังก์ชั่นนี้คือการแปลงชิ้นส่วนของข้อความเป็นฟังก์ชัน UBB ฟังก์ชั่นนี้มีพารามิเตอร์รายการเดียวเท่านั้น:
str
พารามิเตอร์นี้ผ่านสตริงที่จะประมวลผล
พารามิเตอร์การส่งออกของฟังก์ชัน UBB เป็นสตริงที่ประมวลผลโดยรหัส UBB
รหัสของฟังก์ชัน UBB มีดังนี้: (มีข้อมูลความคิดเห็นโดยละเอียดในโปรแกรม)
ฟังก์ชั่น UBB (STR)
Dim I, Temp 'ประกาศตัวแปร
i = 1
อุณหภูมิ =
ทำในขณะที่ instr (i, str, [/]> = 1 'หากไม่ถึงจุดสิ้นสุดของสตริง
ถ้าตัดแต่ง (อุณหภูมิ) = จากนั้น
temp = replacetest ((/[i]) (/s) (/[/i]), str, <i> $ 2 </i>) 'การจับคู่เอกสารและการเปลี่ยนรหัส UBB
อื่น
temp = replacetest ((/[i]) (/s) (/[/i]), temp, <i> $ 2 </i>) 'การจับคู่เอกสารและการเปลี่ยนรหัส UBB
สิ้นสุดถ้า
temp = replacetest ((/[b]) (/s) (/[/b]), temp, <b> $ 2 </b>) 'เปรียบเทียบการจับคู่เทมเพลตและการเปลี่ยนรหัส UBB
temp = replacetest ((/[big]) (/s) (/[/big]), temp, <pig> $ 2 </ig>) 'การจับคู่เอกสารและการเปลี่ยนรหัส UBB
temp = replacetest ((/[strike]) (/s) (/[/strike]), temp, <strike> $ 2 </strike>) 'ทำการจับคู่เทมเพลตและการเปลี่ยนรหัส UBB
temp = replacetest ((/[sub]) (/s) (/[/sub]), temp, <bub> $ 2 </sub>) 'ทำการจับคู่เทมเพลตและการเปลี่ยนรหัส UBB
temp = replacetest ((/[sup]) (/s) (/[/sup]), temp, <sup> $ 2 </sup>)
temp = replacetest ((/[pre]) (/s) (/[/pre]), อุณหภูมิ, <pre> $ 2 </pre>)
temp = replacetest ((/[u]) (/s) (/[/u]), temp, <u> $ 2 </u>)
temp = replacetest ((/[เล็ก]) (/s) (/[/small]), temp, <small> $ 2 </small>)
temp = replacetest ((/[h1]) (/s) (/[/h1]), temp, <h1> $ 2 </h1>)
temp = replacetest ((/[h2]) (/s) (/[/h2]), temp, <h2> $ 2 </h2>)
temp = replacetest ((/[h3]) (/s) (/[/h3]), temp, <h3> $ 2 </h3>)
temp = replacetest ((/[h4]) (/s) (/[/h4]), temp, <h4> $ 2 </h4>)
temp = replacetest ((/[h5]) (/s) (/[/h5]), temp, <h5> $ 2 </h5>)
temp = replacetest ((/[h6]) (/s) (/[/h6]), temp, <h6> $ 2 </h6>)
temp = replacetest ((/[สีแดง]) (/s) (/[/red]), temp, <font color = red> $ 2 </font>)
'สิ่งนี้สามารถเพิ่มเทมเพลตการใช้งานรหัส UBB ใหม่
temp = replacetest ((/[อีเมล]) (/s) (/[/อีเมล]), temp, <a href = mailto: $ 2 target = _top> $ 2 </a>)
temp = replacetest ((/[img]) (/s) (/[/img]), temp, <img src = $ 2>)
temp = replacetest ((/[url]) (/s) (/[/url]), temp, <a href = $ 2 เป้าหมาย = _top> $ 2 </a>)
temp = replacetest ((/[#(/s)]) (/s) (/[/#]), temp, <font color = $ 1> $ 3 </font>) 'ทำการจับคู่เทมเพลตและการเปลี่ยนรหัส UBB
ฉัน = ฉัน 1
วง
ถ้าตัดแต่ง (อุณหภูมิ) <> แล้ว
ubb = temp 'ผ่านสตริงที่กรองโดยรหัส UBB
อื่น
ubb = str 'ผ่านสตริงที่กรองโดยรหัส UBB
สิ้นสุดถ้า
ฟังก์ชันสิ้นสุด
ในรหัสของฟังก์ชั่น UBB เราสามารถเห็น $ 1, $ 2, $ 3 ฯลฯ สตริงเหล่านี้เป็นคำสรรพนามสำหรับสตริงการจับคู่ เช่นเดียวกับแมโครบางอย่างเราสามารถใช้เพื่อแทนที่สตริงการจับคู่โดยไม่ต้องใช้โปรแกรมเพื่อจดจำตำแหน่งของสตริงการจับคู่ ผ่านการเรียกใช้ฟังก์ชั่นสองอย่างนี้เราได้ใช้ฟังก์ชันรหัส UBB มันง่ายมาก
ด้วยวิธีนี้เราเพียงแค่ต้องเรียกฟังก์ชั่น UBB เมื่อแสดงบทความประมวลผลเนื้อหาบทความแล้วแสดงบนเบราว์เซอร์และตระหนักถึงฟังก์ชั่นรหัส UBB ของฟอรัม นอกจากนี้คุณสามารถเพิ่มเทมเพลตการเปลี่ยนรหัส UBB ที่จำเป็นในฟังก์ชั่น UBB ได้อย่างง่ายดายเพื่อให้คุณสามารถขยายฟังก์ชั่นของรหัส UBB ของคุณได้อย่างต่อเนื่อง
(โปรแกรมข้างต้นทั้งหมดทำงานและผ่านใน Winnt4.0 English Version SP5, IIS4.0, IE5.x)
แชร์: ASP ควบคุม 6 รหัสคลาสสิกมากสำหรับฐานข้อมูล XML No.1-สร้างฐานข้อมูล XML data.xml <? xml version = 1.0?> <records> <record> <name> Caca </name> <qq> 1