在包含数字的 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);
我 运行 在访问和转发 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);