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

Finding a numeric ID within an URL including numbers

我 运行 在访问和转发 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-master/e107_projekte/BMW/235_Projekt_BMW-Event01/page.php

localhost/Westbomke/backendV5/e107-master/e107_projekte/company1337/235_Projekt_1337Event/page.php

现在,如果我可以排除 /******_Projekt_ 部分(**** = 随机数)并将其解析为整数,我会很好,但我不知道该怎么做或者如果可能的话。

我试图在这里和通过 google 找到一些东西,但我很可能没有要求正确的东西。

提前感谢您的宝贵时间和帮助!

您可以试试:

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

这是URL你在稳定结构上工作吗? 如果您不熟悉正则表达式并且结构非常稳定,那么以下代码将为您完成这项工作:

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