URL และสตริงคิวรี
URL และ Query Strings
ชั้น URL ใช้การพาร์เซแบบสไตล์ WHATWG — พฤติกรรมเดียวกับที่เบราว์เซอร์ใช้ — ดังนั้น URL ที่ดึงจากเอกสารจะถูกแก้ไขและทำให้เป็นมาตรฐานในลักษณะที่จะเป็นเช่นเดียวกับในเอเย่นต์ผู้ใช้จริง.
การแยกวิเคราะห์และการตรวจสอบความถูกต้อง
URL.parse() แยกวิเคราะห์ URL แบบสัมบูรณ์หรือสัมพัทธ์; URL.can_parse() ให้คำตอบเกี่ยวกับความถูกต้องโดยไม่ต้องสร้างอ็อบเจกต์. การล้มเหลวในการพาร์เซจะทำให้เกิดข้อผิดพลาดประเภท URLParseError.
สตริง Query
URLSearchParams อ่านและแก้ไขพารามิเตอร์ของ query: append(), get(), get_all(), has(), และ delete() ครอบคลุมการทำงานแบบรอบเดียว, รักษา semantics ของค่าหลายค่า.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- Use
can_parse()สำหรับการตรวจสอบอย่างง่ายในฟิลเตอร์; สร้างด้วยparse()เฉพาะเมื่อคุณต้องการส่วนประกอบ - จำไว้ว่าคีย์ของ query ซ้ำ — ใช้
get_all()เมื่อพารามิเตอร์อาจปรากฏมากกว่าหนึ่งครั้ง - ดักจับ
URLParseErrorแทนการตรวจสอบล่วงหน้าด้วย regular expressions
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
| URL สัมพัทธ์ไม่สามารถแยกวิเคราะห์ได้ | ไม่ได้ระบุฐาน | ระบุฐานตาม URL.parse() |
| ส่งคืนค่า query ตัวแรกเท่านั้น | ใช้ get() กับคีย์ที่ซ้ำกัน | ใช้ get_all() |
| อักขระแปลกในส่วนประกอบ | การทำให้เป็นมาตรฐาน WHATWG ขณะทำงาน | คาดหวัง — สิ่งนี้ตรงกับพฤติกรรมของเบราว์เซอร์ |
FAQ
การพาร์สทำตามมาตรฐาน WHATWG หรือไม่?
ใช่ — การทำ normalization และการแยกส่วนประกอบสะท้อนพฤติกรรมของเบราว์เซอร์.
ฉันจะตรวจสอบ URL โดยไม่ต้องพาร์สได้อย่างไร?
URL.can_parse() คืนค่าความถูกต้องโดยไม่ต้องสร้างอ็อบเจ็กต์.
ฉันสามารถแก้ไข query string ได้โดยตรงหรือไม่?
ใช่ — URLSearchParams รองรับการทำ round-trip ของ append/get/has/delete.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
URL.parse | แยก URL |
URL.can_parse | การตรวจสอบความถูกต้องโดยไม่มีการสร้าง |
URLSearchParams.append | เพิ่มพารามิเตอร์ query |
URLSearchParams.get_all | ค่าทั้งหมดสำหรับคีย์ |
URLParseError | การ parse แบบกำหนดประเภทล้มเหลว |