Извлечь ключевое слово из поиска Google в Javascript - PullRequest
8 голосов
/ 18 мая 2011

Я хотел бы извлечь из URL-адреса поиска Google ключевое слово для поиска (например, для ключевого слова "автомобиль": http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=car&aq ... (здесь автомобиль находится между "q =" и "& aq ", но я заметил, что токены могут измениться [" & ie "вместо" & aq "]).

Будучи новичком в regex и поиске в Google, я пока не нашел решения, знает ли кто-нибудь, каксделайте это пожалуйста?

Бруно

Ответы [ 3 ]

18 голосов
/ 18 мая 2011

Вам не нужно регулярное выражение для этого.Изменено с http://jquery -howto.blogspot.com / 2009/09 / get-url-parameters-values-with-jquery.html :

function getUrlVars(href)
{
    var vars = [], hash;
    var hashes = href.slice(href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

Вы можете сделать это:

var v = getUrlVars("http://www.google.com/webhp?hl=en#sclient=psy&hl=en&site=webhp&source=hp&q=car&aq");
var q = v.q;
0 голосов
/ 15 сентября 2013
function getParameterByName(name,url) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(url);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}


alert(getParameterByName('q','https://www.google.com/search?q=buy+a+pc&oq=buy+a+pc&aqs=chrome..69i57j5j0l2j69i61.1674j0&sourceid=chrome&ie=UTF-8#psj=1&q=buy+a+pc'));
0 голосов
/ 22 июля 2013

Ниже пример кода работает для одного параметра и текущего URL, но может быть изменен в соответствии с требованиями.

function extract( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

просто используйте его, как показано ниже,

var result= extract("your parameter name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...