-1

如果我把这个链接

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 将如何处理这个?

4

4 回答 4

3

使用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;
}
于 2012-12-11T07:41:06.700 回答
0

尝试使用正则表达式匹配。像 q=/([A-Za-z] \+?) /

那应该提取您想要的部分,然后您可以将其附加到您的基本网址。

至于如何编码,我相信做是最好的学习方式,但你可以从这里开始

于 2012-12-11T07:44:14.667 回答
0

如果 "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]);
于 2012-12-11T08:29:22.090 回答
-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”

于 2012-12-11T07:49:31.897 回答