请帮助JavaScript剪切部分链接



如果我把这个链接

http://www.google.co.in/search?nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&

在文本区域并提交中,它应该在页面加载后在另一个文本区域中给我一个干净的链接,如下所示:

http://www.google.com/search?q=Quantum+physics+india

这个

的javascript将如何?

使用 indexOf()substr() 可以提取 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;
}

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

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

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

如果"nomo=1&q=Quantum+physics+india&client=ms-opera-mini&channel=new&hl=en&"模式是固定的例如:(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;
}

当您为您的 url 调用它时: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"
问:"量子物理学印度"
网址:"http://www.google.co.in/search?nomo=1"

最新更新