2009-09-18 5 views

Antwort

40

können Sie verwenden substring und lastIndexOf:

var value = url.substring(url.lastIndexOf('/') + 1); 

Wenn der zweite Parameter von substring weggelassen wird, es extrahiert die Zeichen bis zum Ende des Strings.

+1

5 Sekunden! Du hinterhältiger Guatemalteke :) –

+1

@Andy: LOL genau 5 sek, das war wirklich nah! – CMS

0
var arr = window.location.split("/FormBuilder/index.php/reports/export/1"); 
var last_val = arr[arr.length-1]; 
+2

Split erfordert einen Parameter. http://www.w3schools.com/jsref/jsref_split.asp –

1

Warum nicht einen Regex verwenden?

var p = /.+\/([^\/]+)/; 
var match = p.exec(str) 
alert(match[1]); 
6

Nicht wirklich JQuery, aber reine Javascript:

var a = '/test/foo/bar'; 

Um den String nach dem letzten Zeichen zu erhalten:

var result = a.substring(a.lastIndexOf("/") + 1); 
2

Wie Sie alle Antworten JQuery isn sehen‘ Das musste ich tun.

Man könnte es aufgeteilt:

var url = 'www.google.com/dir1/dir2/2'; 
var id = parseInt(url.split('/')[url.split('/').length - 1]); 
4

einen regulären Ausdruck verwenden, die ebenso wie die lastIndexOf Methode ist, aber mit dem zusätzlichen Vorteil, fast unmöglich ist zu lesen/verstehen! ;)

var lastBit = theUrl.match(/[^\/]*$/)[0]; 

Es ist tatsächlich ein Vorteil aber, wenn Sie nur Zahlen erhalten wollten nachlauf oder ein anderes Muster, das Sie könnte es anpassen:

// match "/abc/123", not "/abc/foo" 
var lastDigits = theUrl.match(/[0-9]*$/)[0]; 

// match "/abc/Pie", not "/abc/123" 
var matches = theUrl.match(/\/(P[^\/]*)$/); 
var lastBitWhichStartsWithTheLetterP = matches ? matches[1] : null; 
9

Um es aus der URL-Adresse zu erhalten:

var value = window.location.href.substring(window.location.href.lastIndexOf('/') + 1); 
0

Universal:

function getQueryVariable(variable) 
{ 
    var pathname = window.location.pathname.split("/"); 

    for (i = 0; i < pathname.length; i++) { 
     if (pathname[i] == variable){ 
      return pathname[i+1]; 
     } 
    } 

} 
Verwandte Themen