當我有一個網址是這樣的:約定的查詢字符串參數
http://server/site?firstname=Jack&lastname=Daniels
我明白,在我的JavaScript的姓名查詢應該返回「傑克」。
但是應該怎樣查詢在下列情況下姓回報:
http://server/site?lastname=Daniels
http://server/site?firstname&lastname=Daniels
http://server/site?firstname=&lastname=Daniels
[編輯]爲了回答一些評論:以上所有的都是合法的查詢字符串,我的問題不是如何檢索參數,但如何解釋它們。
爲了記錄在案,我解析查詢字符串用下面的正則表達式,涵蓋所有情況:
/([^?=&;]+)(?:=([^&;]*))?/g
顯然有a very popular question on how to retrieve querystring parameters,但得到的答覆是不正確的(或至少不應對極端情況)。
[更新]我的選擇基於從@Bergi和@zzzzBov答案:
http://server/site?lastname=Daniels => firstname: undefined
http://server/site?firstname&lastname=Daniels => firstname: true
http://server/site?firstname=&lastname=Daniels => firstname: ""
http://server/site?firstname=Jack&lastname=Daniels => firstname: "Jack"
一個副作用是,我不得不稍微修改我正則表達式,與上述規則=
標誌需要被捕獲:
/([^?=&;]+)(=[^&;]*)?/g
取決於您如何創建該功能。 – Dom 2013-02-11 18:06:59
獲取查詢字符串數據,同時您可以忽略無效的查詢字符串參數,並顯示結果集的有效參數 – 2013-02-11 18:07:16
@Dom,這就是爲什麼我查詢通常的約定 – Christophe 2013-02-11 18:08:09