Hôm nay tôi đã xem qua URL sau:
http://www.sfgate.com/cgi-bin/blogs/inmarin/detail??blogid=122&entry_id=64497
Lưu ý dấu hỏi kép ở đầu chuỗi truy vấn:
??blogid=122&entry_id=64497
Trình duyệt của tôi dường như không gặp bất kỳ sự cố nào với nó và đang chạy một bookmarklet nhanh:
javascript:alert(document.location.search);
chỉ cho tôi chuỗi truy vấn được hiển thị ở trên.
Đây có phải là một URL hợp lệ không? Lý do khiến tôi quá bối rối (giả sử như vậy) là vì tôi cần phân tích cú pháp các URL như thế này cho các tham số truy vấn và việc hỗ trợ dấu hỏi kép sẽ yêu cầu một số thay đổi đối với mã của tôi. Rõ ràng nếu chúng ở trong tự nhiên, tôi cần phải hỗ trợ chúng; Tôi chủ yếu tò mò nếu đó là lỗi của tôi vì đã không tuân thủ chính xác các tiêu chuẩn URL hay thực tế đó là một URL không chuẩn.
indexOf()
để định vị dấu hỏi, vì vậy nó đã chọn vị trí của lần xuất hiện đầu tiên. Sau đó, tôi đang tách các query_parameters ra ở mỗi&
và sau đó là các cặp tên / giá trị của chúng ở mỗi=
.