代码之家  ›  专栏  ›  技术社区  ›  Detale

在包含数字的URL中查找数字ID

  •  0
  • Detale  · 技术社区  · 9 年前

    我在访问和转发ID时遇到了一些问题。 我成功地从URL中提取了ID,但如果URL也包含不可预测的数字,我就会遇到问题。

    要稍微澄清一下:

    到目前为止,我努力提取ID(JS)

    var idString = window.location.href;
        idString = idString.replace(/e107/gi, "__ersetzt__");
        idString = idString.replace("http://localhost/Westbomke/backendV5/", "");
        idString = idString.replace(/[^0-9]+/g, "");
    

    一些URL示例

    工作:

    http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php 结果:235=id

    不工作:

    localhost/Westbomke/backendV5/e107主机/e107_projekte/BWM/235_Projekt_BMW-Event01/page.php

    我试图在这里和谷歌上找到一些东西,但我很可能不会要求正确的东西。

    2 回复  |  直到 9 年前
        1
  •  1
  •   hsz    9 年前

    您可以尝试使用:

    var url = 'http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php';
    var id = +url.match(/\/(\d+)/)[1];
    
        2
  •  0
  •   Strahdvonzar    9 年前

    如果您不熟悉正则表达式,并且结构非常稳定,那么以下代码将为您完成此工作:

    var myString = "http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php";
    var mySplitString = myString.split("/");
    var myNumber = parseInt(mySplitString[8]);
    
    console.log(myNumber);

    添加下面的函数将为您提供更多的灵活性。

    var myString = "http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php";
    
    function getProject(myString , myDist){
      var mySplitString = myString.split("/");
      var myID = '';
      mySplitString.forEach(function(key , index){
        if(key.indexOf(myDist) > 0)
         myID = parseInt(mySplitString[index]);
      });
    
      return myID;
    }
    
    var myID = getProject(myString , "Projekt");
    console.log(myID);
    推荐文章