ตามค่าเริ่มต้น เมื่อเราใช้การแทนที่ใน ASP จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อย่างไร ต่อไปนี้เป็นคำแนะนำสั้น ๆ เพื่อความสะดวกของเพื่อน ๆ ที่ต้องการ
ขั้นแรกเรามาดูพารามิเตอร์โดยละเอียดของการแทนที่กันก่อน
อธิบาย
ส่งกลับสตริงที่มีการแทนที่สตริงย่อยตามจำนวนที่ระบุด้วยสตริงย่อยอื่น
ไวยากรณ์
แทนที่(นิพจน์ ค้นหา แทนที่ด้วย[ เปรียบเทียบ[ นับ[ เริ่มต้น]]])
ไวยากรณ์ของฟังก์ชันแทนที่มีพารามิเตอร์ต่อไปนี้:
คำอธิบายพารามิเตอร์
จำเป็นต้องมีการแสดงออก นิพจน์สตริงประกอบด้วยสตริงย่อยที่จะถูกแทนที่
จำเป็นต้องค้นหา สตริงย่อยที่จะค้นหา
จำเป็นต้องแทนที่ด้วย สตริงย่อยที่จะใช้สำหรับการแทนที่
เริ่มทางเลือก ตำแหน่งภายในนิพจน์เพื่อเริ่มค้นหาสตริงย่อย หากละเว้น ค่าเริ่มต้นคือ 1 ต้องใช้เมื่อเกี่ยวข้องกับการนับ
นับเป็นทางเลือก จำนวนการแทนที่สตริงย่อยที่จะดำเนินการ หากละเว้น ค่าเริ่มต้นคือ -1 หมายความว่ามีการทดแทนที่เป็นไปได้ทั้งหมด ต้องใช้เมื่อเชื่อมโยงกับการเริ่มต้น
เปรียบเทียบตัวเลือก ค่าตัวเลขที่ระบุประเภทของการเปรียบเทียบที่ใช้ในการประเมินสตริงย่อย ดูส่วนการตั้งค่าสำหรับค่าต่างๆ หากละไว้ ค่าเริ่มต้นคือ 0 ซึ่งหมายความว่าต้องทำการเปรียบเทียบแบบไบนารี
ตั้งค่า
พารามิเตอร์การเปรียบเทียบสามารถมีค่าต่อไปนี้:
คำอธิบายค่าคงที่
vbBinaryCompare 0 ทำการเปรียบเทียบแบบไบนารี
vbTextCompare 1 ทำการเปรียบเทียบข้อความ
ส่งกลับค่า
แทนที่จะส่งกลับค่าต่อไปนี้:
หากเปลี่ยนคืน
นิพจน์เป็นสตริงที่มีความยาวเป็นศูนย์ ("")
นิพจน์เป็นข้อผิดพลาด Null
find คือสำเนาของนิพจน์ที่มีความยาวเป็นศูนย์
แทนที่ด้วยคือสำเนาของนิพจน์ที่มีความยาวเป็นศูนย์โดยลบเนื้อหาทั้งหมดที่ระบุโดยพารามิเตอร์ find ออก
start > Len(expression) สตริงที่มีความยาวเป็นศูนย์
count คือสำเนาของนิพจน์ 0
แสดงให้เห็น
ค่าที่ส่งคืนของฟังก์ชันแทนที่คือสตริงที่ถูกแทนที่โดยเริ่มต้นจากตำแหน่งที่ระบุโดยเริ่มต้นจนถึงจุดสิ้นสุดของสตริงนิพจน์ แทนที่จะเป็นสำเนาของสตริงต้นฉบับตั้งแต่ต้นจนจบ
ตัวอย่างต่อไปนี้ใช้ฟังก์ชันแทนที่เพื่อส่งกลับสตริง:
คัดลอกรหัสรหัสดังต่อไปนี้:
DimMyString
MyString =แทนที่("XXpXXPXXp", "p", "Y") 'การเปรียบเทียบไบนารีเริ่มต้นจากปลายด้านซ้ายของสตริง ส่งคืน "XXYXXPXXY"
MyString =แทนที่("XXpXXPXXp", "p", "Y", 'การเปรียบเทียบข้อความเริ่มต้นจากอักขระตัวที่สาม ส่งกลับค่า "YXXYXXY" 3,, -1, 1)
วิธีที่ 1: ใช้ฟังก์ชันแทนที่ที่มาพร้อมกับ ASP โดยตรง นี่เป็นวิธีที่ง่ายที่สุดเช่นกัน
title=replace(หัวข้อ,"DF", "SD",1,-1,1)
คำอธิบายโดยละเอียดของการแทนที่พารามิเตอร์ฟังก์ชัน:
พารามิเตอร์ 1: สตริงต้นทาง
พารามิเตอร์ 2: อักขระที่จะแทนที่
พารามิเตอร์ 3: ตัวละครใหม่ นั่นคือเพื่อแทนที่อักขระบางตัวในสตริงต้นทางด้วยอักขระที่ระบุใหม่
พารามิเตอร์ 4: ค่าคือ 1 ระบุเพื่อค้นหาสตริงโดยเริ่มจากอักขระตัวแรก
พารามิเตอร์ 5: ค่า -1 ระบุว่าแต่ละสตริงย่อยต้องถูกแทนที่
พารามิเตอร์ 6: ค่า 1 ระบุว่าการเปรียบเทียบสตริงไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
สองฟังก์ชันสำหรับ (เน้นคำหลัก)
วิธีที่ 2: ใช้นิพจน์ทั่วไปเพื่อแทนที่อักขระที่ระบุโดยไม่คำนึงถึงขนาดตัวพิมพ์
ต่อไปนี้เป็นซอร์สโค้ดของฟังก์ชัน:
คัดลอกรหัสรหัสดังต่อไปนี้:
'//ฟังก์ชัน: การแทนที่สตริง
'//พารามิเตอร์: นิพจน์ทั่วไป, สตริงที่ถูกแทนที่, สตริงแทนที่
ฟังก์ชั่นสาธารณะแทนที่ Test (รูปแบบ, mStr, replStr)
Dim regEx
ตั้งค่า regEx = RegExp ใหม่
regEx.Pattern = รูปแบบ
regEx.IgnoreCase = จริง
regEx.Global = จริง
แทนที่Test = regEx.แทนที่(mStr, replStr)
ตั้งค่า regEx = ไม่มีเลย
สิ้นสุดฟังก์ชัน