2

我必须从 href 链接中拆分值。

我的href链接如下

var val =location.href      // outputs http://localhost:8080/index.html?username=test@gmail.com&joid=68

我想分别获得username价值和joid价值。

我尝试关注但不工作

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

email=emailrogh[0];

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

var id=idrough[1];

我怎样才能提取test@gmail.com68

4

9 回答 9

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);

我希望这会奏效。

于 2013-09-26T06:34:47.400 回答
1

我认为这可能会有所帮助

var loc_name = "http://localhost:8080/index.html?username=test@gmail.com&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']);

这会将查询字符串解析为一个数组。我在控制台中有以下输出

test@gmail.com
68 
test
于 2013-09-26T07:12:24.887 回答
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

于 2013-09-26T06:27:59.370 回答
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, " "));
}

此函数将直接返回您的值。

例如。为您的链接

index.html?names=priya@gmail.com&id=68

将此功能用作

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

值将是

email = "priya@gmail.com";
id = "68";
于 2013-09-26T06:28:08.270 回答
1

对于“用户名”参数:

url.split("username=")[1].split("&")[0]返回“test@gmail.com”。

与“joid”相同:

url.split("joid=")[1]返回“68”。

编辑:请参阅此答案以获得更可靠的方法。

于 2013-09-26T06:21:44.943 回答
1

您首先需要从 href 属性中获取 URl。

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, " "));
}

资料来源: DextOr

于 2013-09-26T06:24:38.830 回答
1

您可以使用以下内容:

var url = "http://localhost:8080/index.html?username=test@gmail.com&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: "test@gmail.com", joid: "68"} 

这是演示:http: //jsfiddle.net/uEqZs/

于 2013-09-26T06:24:59.690 回答
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".
于 2013-09-26T06:25:07.040 回答
0

尝试

var id=val .match(/username=(.*?)(?=(&|$))/)[1]

于 2013-09-26T06:20:52.480 回答