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

匹配的斜杠应该是最后一个,因为 .* 贪婪地匹配,然后我寻找任何数字。这都是错误的。我对正则表达式不是很有经验。你能帮我吗?

4

2 回答 2

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();
于 2013-10-20T01:21:44.230 回答
1

您应该使用特殊字符$,这意味着输入结束:

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

是关于 JavaScript 正则表达式的一个很好的资源。

于 2013-10-20T01:24:27.947 回答