2017-06-08 6 views
0

Ich bin neu in JavaScript, ich brauche Hilfe bei der Lösung eines Problems.Get spezifischen Teil einer URL mit JavaScript

Ich habe die folgende URL:

http://localhost/solo04/index.php?route=checkout/checkout#shipping-method

Ich möchte nur, dass ein Teil der URL erhalten (route = Kasse/Checkout), wie dies zu tun?

+0

haben sollte https://stackoverflow.com/questions/39619951/regular-expression-for- Link/39620022 # 39620022 –

Antwort

0

var str1 = "http: //localhost/solo04/index.php? Route = checkout/checkout # shipping-method"; 
 
    var n = str1.lastIndexOf("?")+1; 
 
    alert(str1.substr(n));

1

Sie können einen Hyperlink-Element erstellen, dies zu erreichen, erstellen Sie einfach es, wie Sie normalerweise würde aber hängen Sie ihn nicht auf das DOM:

var parser = document.createElement('a'); 
parser.href = "http://example.com:3000/pathname/?search=test#hash"; 

parser.protocol; // => "http:" 
parser.hostname; // => "example.com" 
parser.port;  // => "3000" 
parser.pathname; // => "/pathname/" 
parser.search; // => "?search=test" 
parser.hash;  // => "#hash" 
parser.host;  // => "example.com:3000" 

Wenn Sie dann benötigen Sie die Abfragezeichenfolge, können Sie es mit etwas wie analysieren:

function getQueryVariable(variable) { 
    var query = window.location.search.substring(1); 
    var vars = query.split('&'); 
    for (var i = 0; i < vars.length; i++) { 
     var pair = vars[i].split('='); 
     if (decodeURIComponent(pair[0]) == variable) { 
      return decodeURIComponent(pair[1]); 
     } 
    } 
    console.log('Query variable %s not found', variable); 
} 

Um eine bestimmte Variable zu erhalten.

Kredit an jlong ​​& Tarik für die ausgezeichneten Ideen.

1

Der einfachste Weg ist die Verwendung eines regex oder split:

url = "http://localhost/solo04/index.php?Route=checkout/checkout#shipping-method"; 

lastPart = url.split('?')[1]; // grabs the part on the right of the ? 

console.log(lastPart); 

Weitere Varianten How to get the value from the GET parameters?

2

aufgeführt Ich möchte dies auch werfen, weil ich glaube nicht, dass es hier erwähnt worden ist . Sie können die neue URL API auch verwenden, um regex oder irgendeine Schnurmanipulation zu vermeiden, die ich auf einigen der Antworten hier sehe.

Dies ist jedoch relativ neu, so dass die Unterstützung in älteren Browsern möglicherweise begrenzt ist.

zB:

var myURL = new URL('http://localhost/solo04/index.php?q=somequery'); 
console.log(myURL); 

, dass Sie ein Objekt geben, die path, hostname, search usw.