2013-09-26 3 views
2

Мне нужно разделить значения из ссылки href.получить значения из ссылки href с помощью jquery

мой HREF ссылка следующим

var val =location.href  // outputs http://localhost:8080/[email protected]&joid=68 

я хочу, чтобы получить username значение и joid значение отдельно.

Я попытался следующие, но не работает

var emailrogh= val.split("&"); 

email=emailrogh[0]; 

var idrough=emailrogh[1].split("="); 

var id=idrough[1]; 

как я могу извлечь [email protected] и 68

+3

http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values –

ответ

2

Вы можете использовать этот метод

var my_link = location.search.substring().split("&"); 
var email = my_link[0].split("="); 
email = email[1]; 
var id = my_link[1].split("="); 
id = id[1]; 
alert(email); 
alert(id); 

Я надеюсь, что это будет работать.

0

Попробуйте

вар ID = VAL .match (/ имя пользователя = (. *?) (? = (& | $)) /) [1]

1

Для параметра «имя пользователя»:

url.split("username=")[1].split("&")[0] возвращает «[email protected]».

То же самое для "joid":

url.split("joid=")[1] возвращается "68".

Редактировать: см. this answer для более надежного способа сделать это.

1

Сначала вам нужно получить URl из атрибута href.

var wholeString = $("#MyAncId").attr('href'); 

затем использовать следующий метод для получения значения QueryString

function getParameterByName(wholeString, name) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(wholeString); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

Source: DextOr

1

Вы можете использовать следующие:

var url = "http://localhost:8080/[email protected]&joid=68"; 
var vars = {}, key; 
var querystring = url.slice(url.indexOf('?') + 1).split('&'); 
for(var i = 0; i < querystring.length; i++){ 
     key = querystring[i].split('='); 
     vars[key[0]] = key[1]; 
} 
console.log(vars); 

выход будет:

Object {username: "[email protected]", joid: "68"} 

Вот демо: http://jsfiddle.net/uEqZs/

1
function GetURLParameter(sParam) 
{ 
    var sPageURL = window.location.search.substring(1); 
    var sURLVariables = sPageURL.split('&'); 
    for (var i = 0; i < sURLVariables.length; i++) 
    { 
     var sParameterName = sURLVariables[i].split('='); 
     if (sParameterName[0] == sParam) 
     { 
      return sParameterName[1]; 
     } 
    } 
}​ 

И это, как вы можете использовать эту функцию, если предположить, что URL является,

"http://samplepage.com/?technology=jquery&blog=jquerybyexample". 
1

Попробуйте эту маленькую & чистую функцию:

function getValue(name) { 
    var filter = new RegExp(name + "=([^&]+)"); 
    return unescape(window.location.match(filter)[1]); 
} 

var username = getValue("username"); 
var joid = getValue("joid"); 

См.JsFiddle

1

использовать эту функцию

function getParameterByName(name) 
{ 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

эта функция возвратит ваше значение непосредственно.

например.для вашей ссылки

[email protected]&id=68 

использовать эту функцию в качестве

var email = getParameterByName("names"); 
var id = getParameterByName("id"); 

значения будет

email = "[email protected]"; 
id = "68"; 
1

Я думаю, что это могло бы помочь

var loc_name = "http://localhost:8080/[email protected]&joid=68&test=test"; 
var get_params = (loc_name.split("?")[1]).split("&"); 
var contents = []; 
for(var i= 0; i < get_params.length ; i++){ 
    contents[(get_params[i].split("=")[0])] = get_params[i].split("=")[1]; 
} 
console.log(contents['username']); 
console.log(contents['joid']); 
console.log(contents['test']); 

Это будет разобрать строку запроса в массив,. У меня есть следующий вывод в консоли

[email protected] 
68 
test 
Смежные вопросы