我是操作url字符串的新手。
基本上我有一个表格,其中有许多输入,用户可以填写。提交时,url格式如下:
search.html?goingToArea=Yorkshire&leavingOn1=2013-11-26
删除goToArea和leavingOn1的最佳方法是什么,并用/来替换=
..Yorkshire/2013-11-26/...
我见过的大多数示例都是将URL转换为查询字符串(与我的问题相反),或者它们返回的是JSON对象,而不是URL。我看过RegEx和jquery BBQ。这些是正确的方法吗?它适用于移动网站,可以提供任何建议。感谢
答案 0 :(得分:1)
使用javascript“replace”函数和Regex:
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)。
答案 1 :(得分:0)
您可以使用Regex,但这是一个非正则表达式解决方案。不是很优雅但它应该有效。
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
&amp; <{1}}在网址中互换,这不起作用。
答案 2 :(得分: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('/');
答案 3 :(得分:-1)
你为什么要在JS中这样做?
最好的方法是使用webserver重写。
因此,如果您使用的是Apache HTTP Server,请在此处查看mod_rewrite - http://httpd.apache.org/docs/current/mod/mod_rewrite.html