如何从Url客户端获取ID?

时间:2012-08-28 21:11:27

标签: javascript jquery asp.net-web-api

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

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

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

5 个答案:

答案 0 :(得分:2)

使用regular expressions并从网址中提取相应的部分(似乎是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 :缩短用于匹配的模式(请参阅修订历史记录以进行比较)。

答案 1 :(得分:1)

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

的操作
var url_array = document.location.split('/');
var id = url_array[url_array.length - 1];

答案 2 :(得分:0)

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

有非常复杂的URL解析器用于javascript,也许你应该在谷歌上寻找一个适合你需要的解析器。

答案 3 :(得分:0)

试试这个

alert("/api/User/Details/2c021192-25cb-43e1-9bba-3bd5604a0a3d".split('/').slice(-1)[0]);

答案 4 :(得分:0)

最简单的:

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

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