2009-09-18 14 views

Odpowiedz

40

można użyć substring i lastIndexOf:

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

Jeśli drugi parametr substring zostanie pominięty, wyodrębnia znaki na końcu łańcucha.

+1

5 sekund! Ty podstępny Gwatemalczyk :) –

+1

@Andy: LOL dokładnie 5 sekund, to było naprawdę blisko! – CMS

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

Podział wymaga parametru. http://www.w3schools.com/jsref/jsref_split.asp –

1

Dlaczego nie stosować wyrażeń regularnych?

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

Niezupełnie jQuery, ale czysty JavaScript:

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

Aby uzyskać ciąg po ostatnim znaku:

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

Jak widać wszystkie odpowiedzi JQuery ISN” t potrzebne do tego.

Można je podzielić:

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

Korzystanie regex, który jest podobnie jak metody lastIndexOf, ale z dodatkową korzyścią jest prawie niemożliwy do odczytu/zrozumieć! ;)

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

Tam faktycznie jest korzyścią jednak, jeśli tylko chciał, aby uzyskać końcowe numery, albo jakiś inny wzór można go przystosować:

// 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

Aby dostać go z adresem URL:

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

Uniwersalny:

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

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

} 
Powiązane problemy