2016-08-05 18 views
0

IDにアクセスして転送する際に問題が発生しました。 URLから正常にIDを抽出しましたが、URLに予測できない数字が含まれていると問題が発生します。少し物事をクリアするには数字を含むURL内の数値IDを検索する

:これまでのところ(JS)のIDを抽出する

私の努力

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/BMW/235_Projekt_BMW-Event01/page.php

はlocalhost/Westbomke/backendV5今、私は   /****** _ Projekt_    を除外することができれば/e107-master/e107_projekte/company1337/235_Projekt_1337Event/page.php

パート(**** = RANDO mの数字の量)とそれを整数型に解析しても問題ありませんが、これを行う方法や可能であればわかりません。

私はここやGoogleを使って何かを見つけようとしましたが、私は正しいものを求めないでしょう。

お時間をいただきありがとうございます。

答えて

1

あなたはして試すことができます:

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

信じられません。 このような高速回答ありがとう! 私は実際にこの抽出がどのように機能するのかわかりませんが、それはありません。 もしあなたが気にしないなら、私はこの特定のurl.matchの仕組みを説明するのが大好きです。 – Detale

+0

@Detaleあなたはウェルメームです - 正しい答えを左の太い部分に付けることを忘れないでください。 – hsz

0

あなたが構造的に安定した上で作業しているこのURLはありますか? あなたはNTO正規表現に精通しており、構造はかなり安定している場合は、次のコードは、あなたのために仕事をする:

を提供します、以下の機能を追加する

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

+0

** http:// localhost/Westbomke/backendV5/e107-master/e107_projekte/**は、これらのページに関するすべてのリンクで使用される通常の構造です。それ以降は、**社名**が大きく変わり、その後に**ユニークなID **が続きます。 ** \ _ Projekt \ _ **も定数です。** BMW-Event **はプロジェクト名です。 ** page.php **は再び定数です。私を助けるあなたの努力に本当に感謝します。もし私が問題に遭遇し、何らかの理由で動作しなかったら(例えば、localhostからオンラインに切り替える)、あなたはhszのコードを使用します。私はあなたのソリューションを試してみるつもりです。 – Detale

関連する問題