在JavaScript中解析URL

在JavaScript中解析URL,javascript,regex,query-string,url-parsing,Javascript,Regex,Query String,Url Parsing,我需要用JavaScript解析url 这是我的密码: var myRe = /\?*([^=]*)=([^&]*)/; var myArray = myRe.exec("?page=3&Name=Alex"); for(var i=1;i<myArray.length;i++) { alert(myArray[i]); } var myRe=/\?*([^=]*)=([^&]*)/; var myArray=myRe.exec(“?page=3&Nam

我需要用JavaScript解析url

这是我的密码:

var myRe = /\?*([^=]*)=([^&]*)/;
var myArray = myRe.exec("?page=3&Name=Alex");


for(var i=1;i<myArray.length;i++)
{
    alert(myArray[i]);   
}
var myRe=/\?*([^=]*)=([^&]*)/;
var myArray=myRe.exec(“?page=3&Name=Alex”);

for(var i=1;i
exec
返回一个匹配项,如果找不到匹配项,则返回null。因此,您需要保持
exec
ing直到它返回null

var myRe = /\?*([^=]*)=([^&]*)/;
var myArray;
while((myArray = myRe.exec("?page=3&Name=Alex")) !== null)
{
  for(var i=1;i<myArray.length;i++)
  {
      alert(myArray[i]);   
  }
}

请参阅实时示例:

exec
返回匹配项,如果未找到匹配项,则返回null。因此,您需要保持
exec
ing直到它返回null

var myRe = /\?*([^=]*)=([^&]*)/;
var myArray;
while((myArray = myRe.exec("?page=3&Name=Alex")) !== null)
{
  for(var i=1;i<myArray.length;i++)
  {
      alert(myArray[i]);   
  }
}

请参阅实时示例:

如果您只想获取查询字符串名称/值对,则可以执行以下操作:

function getQueryStringValue(varName) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == varName) { return pair[1]; }
    }
}
函数getQueryStringValue(varName){ var query=window.location.search.substring(1); var vars=query.split(&); 对于(变量i=0;i
如果您只想获取查询字符串名称/值对,则可以执行以下操作:

function getQueryStringValue(varName) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");

    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == varName) { return pair[1]; }
    }
}
函数getQueryStringValue(varName){ var query=window.location.search.substring(1); var vars=query.split(&); 对于(变量i=0;i
var qs=“da?page=3&page=4&Name=&xxx=43&page=&adasdsadsa”;
var params=qs.replace(/^.*?/g')。replace(/^.*/g')。match(/[^&\?]+/g);
var args={};
如果(变量i=0;i
var qs=“da?page=3&page=4&Name=&xxx=43&page=&;
var params=qs.replace(/^.*?/g')。replace(/^.*/g')。match(/[^&\?]+/g);
var args={};

如果(params)for(var i=0;i根据您的示例可能重复,您需要只解析URL的查询字符串部分(在问号之后)?根据您的示例可能重复,您需要只解析URL的查询字符串部分(在问号之后)?+1
exec
将返回一个数组或
null
,因此
!==null
是多余的。此外,您可能希望在第二行添加分号。这不适用于“?page=&Name=Alex”(页面参数的值为空)如果锚点id#为specified@Andrew-有这样做的要求吗?再加上更改
+
*
,它也适用于空值。+1
exec
将返回数组或
null
,因此
!==null
是多余的。此外,您可能需要在第二行添加分号。this不适用于“?page=&Name=Alex”(page参数的值为空),如果锚点id#为specified@Andrew-有这样做的要求吗?再加上更改
+
*
,它也适用于空白值。