1

如果我有一个像这样的 URL,那么从 URL 客户端"/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d"获取 ID 的最佳方法是什么?"2c02ds92-25cb-43e1-9bba-3bd5604a0a3d"

我需要能够$.getJSON使用 ID 构建请求,并且我正在寻找使用 JavaScript、jQuery 等最简洁的方法。谢谢

$.getJSON('/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d')...
4

5 回答 5

2

使用正则表达式并从 URL 中提取适当的部分(似乎是 UUID)。

另一种方法是仅拆分字符串/并获取最后一个元素。

编辑:关于如何从 URI 中检索 UUID 的示例:

var url = '/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d';

var pattern = /[\da-f]{8}\-[\da-f]{4}\-[\da-f]{4}\-[\da-f]{4}\-[\da-f]{12}/;
var match = url.match(pattern)[0];

url.match(pattern)返回匹配数组,因此假设至少有一个匹配,并且只有一个匹配,您应该选择它(使用[0],如示例中所示)。

证明:http: //jsfiddle.net/p6zud/2/

编辑 2:缩短了用于匹配的模式(参见修订历史进行比较)。

于 2012-08-28T21:13:44.110 回答
1

如果 id 始终是 URI 的最后一部分,您可以执行类似的操作

var url_array = document.location.split('/');
var id = url_array[url_array.length - 1];
于 2012-08-28T21:16:52.273 回答
0

使用split,将 url 转换为参数数组。然后,您的案例中的最后一个数组项将是您的 ID。

有非常复杂的用于 javascript 的 URL 解析器,也许您应该在 google 上四处寻找适合您需求的解析器​​。

于 2012-08-28T21:16:56.310 回答
0

试试这个

alert("/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d".split('/').slice(-1)[0]);
于 2012-08-28T21:18:09.273 回答
0

最简单的:

var id = '/api/User/2c021192-25cb-43e1-9bba-3bd5604a0a3d'.split('/User/')[1];

给你2c021192-25cb-43e1-9bba-3bd5604a0a3d

于 2012-08-28T21:19:17.590 回答