ปัญหาที่พบในการทำงานการจับคู่สองสายข้อกำหนด: แต่ละสตริงมีส่วนใหญ่ *และอาจมีหลายอย่างไม่ จำกัด
* แสดงถึงสตริงที่มีความยาวใด ๆ ในขณะที่? แสดงถึงตัวละคร
ข้อกำหนดสามารถกระตุ้นความขัดแย้งสองประการ
คัดลอกรหัสดังนี้: <อินพุต type = "text" id = "str1"> <br>
<อินพุต type = "text" id = "str2"> <br>
<อินพุต type = "ปุ่ม" onclick = "checkMarchx ()" value = "ตรวจสอบ">
รหัสที่จะนำไปใช้โดยใช้ JavaScript มีดังนี้:
ฟังก์ชั่น checkMarchx () {var str1 = document.getElementById ('str1'). ค่า; var str2 = document.getElementById ('str2') ค่า; var str1xposition = str1.indexof ('*'); var str2xposition = str2.indexof ('*') ตำแหน่ง = str1xposition> str2xposition? str2xposition: str1xposition; // successif (ตำแหน่ง! = 0) {var patbeforestr1 = str1.substring (0, ตำแหน่ง); var patbeforestr2 = str2.substring (0, ตำแหน่ง); '+str2+"ความขัดแย้ง"); // จากนั้นทดสอบครึ่งหลังที่สอดคล้องกัน var str1xbackposition = str1.length-str1xposition-1; var str2xbackposition = str2.length-str2xposition-1; var backposition = str1xbackposition> str2xbackposition? '+str2+"ความขัดแย้ง");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.substring (str2.length-backposition, str2.length); ถ้า (checkmarchq '+str2+"ความขัดแย้ง");}}}} else {// alert (str1+' และ '+str2+"ความขัดแย้ง"); var str1xbackposition = str1.length-str1xposition-1; var str2xbackposition = str2.length-str2xposition-1; (backposition == 0) {Alert (str1+'ความขัดแย้งกับ'+str2+");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.substring (str2.length-backposition, str2.length); ถ้า (checkmarchq (patbackstr1, patbackstr2)) {แจ้งเตือน (str1+'ความขัดแย้งกับ'+str2+"ความขัดแย้ง");}}}}}}}}} str2xposition ==-1)) // มีเพียงหนึ่งสตริงที่มี * {var strx = str1xposition ==-1? str2: str1; // สตริงที่มี * var strnox = str1xposition ==-1? str1: str2; strx.indexof ('*'); ถ้า (ตำแหน่ง == 0) {// alert (str1+'และ'+str2+"ความขัดแย้งครึ่งแรก"); var backposition = strx.length-position-1; ถ้า (backposition == 0) {แจ้งเตือน (str1+' str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.substring (str2.length-backposition, str2.length); ถ้า (checkmarchq (patbackstr1, patbackstr2)) {Alert (str1+' str1.substring (0, ตำแหน่ง); var patbeforestr2 = str2.substring (0, ตำแหน่ง); ถ้า (checkmarchq (patbeforestr1, patbeforestr2)) {// alert (str1+'และ'+str2+"ความขัดแย้งครึ่งแรก"); var backposition = strx.length-position-1; '+str2+"ความขัดแย้ง");} else {var patbackstr1 = str1.substring (str1.length-backposition, str1.length); var patbackstr2 = str2.substring (str2.length-backposition, str2.length); ถ้า (checkmarchq '+str2+"ความขัดแย้ง");}}}}}}} else {ถ้า (checkmarchq (str1, str2)) {แจ้งเตือน (str1+' และ '+str2+"ความขัดแย้ง"); (var i = 0; i <str1.length; i ++) {ถ้า (str1.substr (i, 1)! = '?' && str2.substr (i, 1)! = '?') {ถ้า (str1.substr (i, 1)! = str2.substr (i, 1) ความขัดแย้ง}}}} return flagque;}* อย่างน้อยหนึ่งอักขระและโปรแกรมข้างต้นไม่ได้ตรวจสอบความถูกต้องตามกฎหมายของอินพุต
หากต้องการดูไวยากรณ์ JavaScript เพิ่มเติมคุณสามารถติดตาม: "คำแนะนำอ้างอิง JavaScript" และ "คู่มือสไตล์รหัส JavaScript" ฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น