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

时间:2016-08-05 13:10:42

标签: javascript regex url str-replace

我在访问和转发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, "");

一些网址示例

工作:

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_ Part(**** =随机数量的数字)并将其解析为整数我会没事的,但我不知道怎么做或者如果这是可能的。

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

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

2 个答案:

答案 0 :(得分:1)

您可以尝试:

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

答案 1 :(得分:0)

这个网址在结构方面是否稳定? 如果您不熟悉正则表达式并且结构非常稳定,那么以下代码将为您完成工作:

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