2013-10-20 38 views
0

在我的Rails應用程序中的JavaScript函數中,我試圖獲取配方的ID。在這樣的事件對象內查找匹配正斜槓後的最後一位數字

e.delegateTarget.baseURI 

產生uri,其最後一個數字(正斜槓後面)是我想要的id。

http://myroute.com/users/2/recipes/6 

當然,這個id在未來可能會更長,所以我需要能夠獲得最後一個正斜槓後的所有數字。

我試圖讓最後一個ID這樣

var uri = e.delegateTarget.baseURI 
var re = /^(.*[\\\/\d])/; 
var recipe_id = uri.match(re); 

匹配的斜線應該是最後一個,因爲*匹配貪婪,然後我找任何數字。這完全錯了。我對正則表達式不太瞭解。你能幫我嗎?

+1

'url.split('/')。pop()'? – elclanrs

回答

1

一個非常簡單的方法來做到這一點是使用string.split()

var uri = "http://myroute.com/users/2/recipes/6", 
    splituri = uri.split('/'); 

recipe_id = splituri[splituri.length - 1] // access the last index 

編輯:

甚至更​​容易與.pop()方法,該方法返回彈出值

像elclanrs說的

說。

var uri = e.delegateTarget.baseURI, 
    recipe_id = uri.split('/').pop(); 
1

您應該使用特殊字符$,這意味着輸入端:

re = /\d+$/; //matches one or more digits from the end of the input 

Here是JavaScript的正則表達式的好資源。

+0

是的,這是真的。我猜如果在最後的正斜槓後面預期不僅僅是數字,那麼做.split('/').pop()看起來會更優雅。 – xdl

相關問題