我在寫一個JavaScript web應用程序。我希望允許用戶通過正則表達式搜索目錄,並將他們的搜索詞寫入URL以便他們可以爲結果添加書籤。爲正則表達式創建可收藏的URL?
例如,以產生狀態的可收藏的搜索與名字起「A」和結束「一」:
/states/^A.*a$
人們應該能夠書籤的網址,並得到結果匹配阿拉斯加,亞利桑那州和阿拉巴馬。
但是,我發現URL安全字符和正則表達式字符在一起播放不好。例如,當我向URL寫入^
時,瀏覽器將其重寫爲%5E
。
任何人都可以建議一個更好的方式來創建一個正則表達式的書籤URL?我不需要支持每種可能的正則表達式字符:只需ASCII加$
,*
,?
,^
和|
。
理想情況下,我想避免使用GET參數(如/states?init=A&final=a
),但也許這就是我需要去的一個漫長而笨重的URL。
謝謝!我不想URL編碼/解碼,因爲它看起來很醜。我想也許querystring路線是要走的路 - 它看起來像querystrings中的字符不會被編碼。 – Richard 2012-03-16 18:09:03
@Richard - 我會_still_編碼查詢字符串,因爲不同的瀏覽器可能會有不同的行爲。如果URL清潔是目標,抽象實際查詢(就像我在最後提到的那樣)是最好的路線,因爲它提供了最乾淨的URL和服務器端的最大靈活性。 – cdeszaq 2012-03-16 18:11:04
我也喜歡可讀和可破解的URL,所以我想避免抽象查詢,如果可能的話......也許這是一個沒有真正好的解決方案的問題。 – Richard 2012-03-22 09:58:20