从网址中获取一个数字

时间:2015-05-27 12:14:24

标签: javascript jquery regex

我需要从网址获取id。 所以如果网址是这样的:http://localhost:17241/Chart.aspx?id=11

我应该将数字11作为输出。 但每个网站都有不同的ID。然后我会用那个设置z-index。

我已经尝试过写点什么

$.urlParam = function (name) {
var patt1 = new RegExp('[^17241]').exec(window.location.href);
return result[1] || 0;
document.getElementById("link").innerHTML = result;}

但这根本不起作用。 有谁知道该怎么办?

所以现在它应该改变z-index:

var url = window.location.href;
var params = url.split('?');
var id = params[1].split('=')[1]; //params[1] will contain everything after ? 
console.log(id);
if(id == 11)
{
    $(“#one”).each(function() {
        $(this).css(“z-index“, 0);
    });

}

else if(id == 31)
{
    $(“#four”).each(function() {
        $(this).css(“z-index“, 0);
    });
}

它应该改变div的z-index

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<div class="contentwidth" id="chartdiv">
    <asp:Label ID="lblStatus" runat="server"></asp:Label>
    <div id="one" style="position: absolute; top: 0; left: 0; height: 100%; width: 100%;">
        <asp:Literal ID="ltrRenderChart" runat="server"></asp:Literal>
    </div>
    <div id="two" style="position: absolute; top: 0; left: 50%; height: 100%; width: 100%; z-index:-1">
        <asp:Literal ID="ltrRenderChart2" runat="server"></asp:Literal>
    </div>
    <div id="three" style="position: absolute; top: 50%; left: 0; height: 100%; width: 100%; z-index:-1">
        <asp:Literal ID="ltrRenderChart3" runat="server"></asp:Literal>
    </div>
    <div id="four" style="position: absolute; top: 50%; left: 50%; height: 100%; width: 100%; z-index:-1 ">
        <asp:Literal ID="ltrRenderChart4" runat="server"></asp:Literal>
    </div>
</div>

由于

10 个答案:

答案 0 :(得分:3)

您可以使用split()

var url = 'http://localhost:17241/Chart.aspx?id=11'
var params = url.split('?');
var id=params[1].split('=')[1]; //params[1] will contain everything after ? 
console.log(id);

修改

要获取var url内的网址,请用

替换第一行
var url = window.location.href;

答案 1 :(得分:3)

它叫做查询字符串

这是函数,

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

以及如何致电

getParameterByName(name)

以上代码来自这里 How can I get query string values in JavaScript?

答案 2 :(得分:1)

您可以使用regex

alert(window.location.href.match(/\?id=(\d+)/i)[1]);
  1. \?:匹配?。需要通过\
  2. 逃脱
  3. id=:匹配完整的字符串id=
  4. \d+:匹配任何号码。数字
  5. ():分组。
  6. i:不区分大小写匹配

答案 3 :(得分:1)

如果你想把它作为实际数字,我会写一个通用版本

function getParamAsNumber(url, param) {
    param = param + '=';
    if (url.indexOf(param) !== -1) {
        return parseInt(url.substr(url.indexOf(param) + param.length));
    }
}

它在param +&#39; =&#39;之后将字符串转换为整数。 (在您的情况下&#39; id =&#39;)

所以你可以做到

getParamAsNumber(window.location.href, 'id');

答案 4 :(得分:1)

我正在使用此方法从当前窗口的URL获取任何参数:

function obtainParameter(key) {
    var result=null, tmp;
    window.location.search //this attribute stores the string found after a ‘?’ in the URL, including the question mark.
        .substr(1) //removing question mark in position 0
        .split("&") //obtaining the pairs key=value
        .forEach(function (item) {
            tmp = item.split("="); // tmp[0] is the parameter name, tmp[1] is the value
            if (tmp[0] === key) result = decodeURIComponent(tmp[1]);
        });
    return result;
}

拥有它,你只需要写:

var id=obtainParameter('id');

答案 5 :(得分:1)

var url = "http://localhost:17241/Chart.aspx?id=11";

url = url.split("=")[1];

答案 6 :(得分:1)

var url = 'http://localhost:17241/Chart.aspx?id=11';
var match = url.match(/id=(\d+)/)
if (match) {
    var id = match[1];
}

答案 7 :(得分:1)

您可以使用拆分功能: Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "YourExcelFile.xls")); Response.ContentType = "application/vnd.ms-excel"; System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw); GridView1.AllowPaging = false; GridView1.RenderControl(hw); Response.Write(sw.ToString()); Response.End();

string.split(separator,limit)

答案 8 :(得分:1)

你不需要Regex来完成这项小任务。 您可以使用以下功能来满足您的要求:

function getvalue(murl,para)
{
   try
   {
        return (murl.split(para+"=")[1]).split("&")[0];
   }
catch(e)
   {
      return '';
   }
}
var murl = 'http://localhost:17241/Chart.aspx?id=11';
var id = getvalue(murl,'id');

找不到GET参数时,它不会返回任何内容。

在你的情况下:

var id = getvalue(window.location.href,'id');

答案 9 :(得分:1)

您可以使用此函数通过JS获取查询字符串参数:

function getQueryVariable(variable) {
  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] == variable) {
      return pair[1];
    };
  }:
  return(false);
};

然后您可以像这样获得id的值:

var yourID = getQueryVariable('id');