2013-11-26 48 views
0

我是新來操縱url字符串。將查詢字符串轉換爲url

Bascially我有一個用戶可以填寫大量輸入的表單。在提交的URL格式是像這樣:

search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26 

請告訴我刪除goingToArea和leavingOn1,並更換=帶/最好的方法,使我見過要麼轉換

..Yorkshire/2013-11-26/... 

大多數示例一個查詢字符串的URL(與我的問題相反),或者他們返回一個JSON對象,而不是一個URL。我看過RegEx和jquery BBQ。這是正確的路嗎?它的移動網站incase有助於任何建議。謝謝

+0

大多數情況下,只需在服務器端捕獲這些值並將其轉換爲您需要的任何值即可。 – adeneo

+0

這裏是C#中的正則表達式,可能是一個開始[\?!&]。*?= – Sico

回答

1

使用JavaScript 「替換」 功能和正則表達式:

var urlString = "search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26"; 
    urlString = urlString.replace(/\?(.+?)=/i, '/'); 
    urlString = urlString.replace(/\&(.+?)=/i, '/'); 

    console.log(urlString); 
    // return => "search.html/Yorkshire/2013-11-26" 

第一操作「之間換成新的? 「和「/」(開頭或URL)的「=」。

第二個操作用「/」(URL的其餘部分)替換「&」和「=」之間的所有內容。

0

你可以使用正則表達式,但這裏是一個非正則表達式的解決方案。不是很優雅,但它應該工作。

var splitted = "search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26".split('&'); 
var place = splitted[0].split('=')[1]; 
var date = splitted[1].split('=')[1]; 
console.log(place + '/' + date); 

JSFIDDLE DEMO

顯然,這種假設URL是正確的順序。即如果goingToArea & leavingOn1在URL中互換,這將不起作用。

0
var qs = url.substring(url.indexof('?') + 1); 
var p = qs.split('&'); 
var res = []; 
for(var i=0; i < p.length; p++) { 
var required_val = p.split('=')[1]; 
res.push(required_val); 
} 

var ans = url.substring(0, url.indexof('?')) + res.join('/');