如果我把这个链接
http://www.google.co.in/search?nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&
在 textarea 中并提交,它应该在页面加载后在另一个 textarea 中给我一个干净的链接,如下所示:
http://www.google.com/search?q=Quantum+physics+india
javascript 将如何处理这个?
如果我把这个链接
http://www.google.co.in/search?nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&
在 textarea 中并提交,它应该在页面加载后在另一个 textarea 中给我一个干净的链接,如下所示:
http://www.google.com/search?q=Quantum+physics+india
javascript 将如何处理这个?
使用indexOf()
andsubstr()
您可以提取q=
参数并将其附加到新链接。这也会修剪掉q=
(如果有的话)之后的任何附加参数。
function convertLink(input)
{
var newLink = "http://www.google.com/search?";
var temp = input.substr(input.indexOf('q='));
var ampPos = temp.indexOf('&');
if(ampPos > -1)
{
temp = temp.substr(0, ampPos);
}
return newLink + temp;
}
如果 "nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&" 模式是固定的 Ex: (nomo=&q=&client=&channel=)
您将能够使用以下脚本获得答案
var uri = 'http://www.google.co.in/search?nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&';
var myarr = uri.split("?");
var url = myarr[0];
//alert(myarr[0]);
var myarr2 = myarr[1].split("&");
//alert(myarr2[1]);
alert(url+'?'+myarr2[1]);
这是解析任何 url 的通用函数:
function parseQueryString(url) { var e, d = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); }, r = /([^&=]+)=?([^&]*)/g, queryObject = {}; while (e = r.exec("url=" + url)) queryObject[d(e[1])] = d(e[2]); console.dir(queryObject); return queryObject; }
当您为您的网址调用它时: parseQueryString("http://www.google.co.in/search?nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&");
你得到:对象
频道:“新”
lient:“ms-opera-mini”
hl:“en”
q:“印度量子物理学”
url:“http://www.google.co.in/search?nomo=1”