Javascript 从url中获取数字

Javascript 从url中获取数字,javascript,jquery,regex,Javascript,Jquery,Regex,我需要从url获取id。 因此,如果url是这样的: 我应该得到数字11作为输出。 但每个站点都有不同的id。然后,我将用它设置z索引 我已经试着写点东西了 $.urlParam = function (name) { var patt1 = new RegExp('[^17241]').exec(window.location.href); return result[1] || 0; document.getElementById("link").innerHTML = result;}

我需要从url获取id。 因此,如果url是这样的:

我应该得到数字11作为输出。 但每个站点都有不同的id。然后,我将用它设置z索引

我已经试着写点东西了

$.urlParam = function (name) {
var patt1 = new RegExp('[^17241]').exec(window.location.href);
return result[1] || 0;
document.getElementById("link").innerHTML = result;}
但这根本不起作用。 有人知道该怎么做吗

因此,现在应该更改z索引:

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索引

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


谢谢

您可以使用
regex

alert(window.location.href.match(/\?id=(\d+)/i)[1]);
  • \?
    :匹配
    。需要通过
    \
  • id=
    :匹配精确的字符串
    id=
  • \d+
    :匹配任意数量的数字
  • ()
    :分组
  • i
    :不区分大小写的匹配

  • 您可以使用
    split()

    编辑

    要获取
    var url
    中的url,请将第一行替换为

    var url = window.location.href;
    

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

    function getParamAsNumber(url, param) {
        param = param + '=';
        if (url.indexOf(param) !== -1) {
            return parseInt(url.substr(url.indexOf(param) + param.length));
        }
    }
    
    它将param+'='后的字符串转换为整数(在您的示例中为'id=')

    所以你可以

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

    这叫做查询字符串

    这是函数

     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)
    
    以上代码来自这里

    我使用此方法从当前窗口的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');
    

    您可以使用拆分函数:
    string.split(分隔符、限制)


    这个小任务不需要正则表达式。 您可以使用以下功能获取您的需求:

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

    您可以使用此函数通过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);
    };
    

    @如果有许多参数,AnoopJoshi将不起作用。要获得的id,您会怎么做?为什么不在服务器端将id值输出到javascript中?@Converator我已经尝试在c#内部执行此操作,因为我有一个if-else,并且我使用了scriptmanager。但是我做不到。但是当url应该从上面读取时,我该怎么做?@fusionchart\u help您可以使用
    window.location.href
    。检查更新的回答,但如何获取变量var中的url?已经@Zee解释过。如何获取变量url中的url?@fusionchart\u帮助。请参阅更新。
     var str = "http://localhost:17241/Chart.aspx?id=11";
     var res = str.split("=", 2);
     document.getElementById("link").innerHTML = res[1];
    
    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');
    
    var id = getvalue(window.location.href,'id');
    
    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);
    };
    
    var yourID = getQueryVariable('id');