วันนี้ฉันเจอ URL ต่อไปนี้:
http://www.sfgate.com/cgi-bin/blogs/inmarin/detail??blogid=122&entry_id=64497
สังเกตเครื่องหมายคำถามสองเท่าที่จุดเริ่มต้นของสตริงข้อความค้นหา:
??blogid=122&entry_id=64497
ดูเหมือนว่าเบราว์เซอร์ของฉันจะไม่มีปัญหาใด ๆ และเรียกใช้ bookmarklet อย่างรวดเร็ว:
javascript:alert(document.location.search);
เพิ่งให้สตริงข้อความค้นหาที่แสดงด้านบน
นี่คือ URL ที่ถูกต้องหรือไม่ เหตุผลที่ฉันเป็นคนอวดดี (สมมติว่าฉันเป็น) เป็นเพราะฉันต้องแยกวิเคราะห์ URL แบบนี้สำหรับพารามิเตอร์การค้นหาและการรองรับเครื่องหมายคำถามสองเท่าจะต้องมีการเปลี่ยนแปลงบางอย่างกับโค้ดของฉัน แน่นอนว่าถ้าพวกมันอยู่ในป่าฉันจะต้องสนับสนุนพวกมัน ฉันสงสัยเป็นหลักว่าเป็นความผิดของฉันที่ไม่ปฏิบัติตามมาตรฐาน URL อย่างแน่นอนหรือว่าเป็น URL ที่ไม่ได้มาตรฐาน
indexOf()
เพื่อค้นหาเครื่องหมายคำถามดังนั้นมันจึงเลือกตำแหน่งของเหตุการณ์แรก แล้วผมแยก query_parameters ออกในแต่ละ&
แล้วชื่อ /=
คู่ค่าของพวกเขาในแต่ละ