2012-02-11 116 views
1

比方说,我有以下网址:如何获得网址参数的JavaScript

something.com/messages/username/id 

我怎样才能获得usernameid

+0

您可以分割,像其他人解释,但有一间酒吧网址作为最后一个字符becareful,那么分裂会返回一个空字符串作为最后一个项目。要(如果存在)删除它,你可以使用MYSTRING.replace(/ \/$ /, ''); – 2012-02-11 16:30:35

+0

@NiklasB。除去:) – Devjosh 2012-02-11 16:35:24

+0

@EliseuMonar:您可以简单地使用正索引(从一开始)。有什么问题?如果网址末尾有斜线,我在这里看到的所有解决方案也可以正常工作。 – 2012-02-11 16:43:01

回答

3

其实我只是不得不面对的一天。当您访问某些页面的缓存版本时,查询字符串实际上是URL路径的一部分。但是,如果您尝试避免缓存,则使用查询字符串。

鉴于从How to get the value from the GET parameters?的答案之一,这是我用来部分正常化访问。

接受回应的路由器_.isArray()(我们建立在主干之上,所以我们有下划线可用)并处理以不同方式将数据拉出对象或数组。

slice最后摆脱了两个"",因为我们没有使用文档,只有目录和我们的URL以/开头和结尾。如果您正在查找文档访问权限,则应相应地更改slice

var qs = function(){ 
    if(window.location.search){ 
     var query_string = {};    
     (function() { 
      var e, 
       a = /\+/g, // Regex for replacing addition symbol with a space 
       r = /([^&=]+)=?([^&]*)/g, 
       d = function (s) { return decodeURIComponent(s.replace(a, " ")); }, 
       q = window.location.search.substring(1); 

      while (e = r.exec(q)){ 
       query_string[d(e[1])] = d(e[2]); 
      } 
     })(); 
    } else { 
     return window.location.pathname.split('/').slice(1, -1); 
    } 
    return query_string; 
}; 
8

您可以使用String.split为:

var parts = window.location.href.split('/'); # => ["http:", "", "something.com", "messages", "username", "id"] 
var username = parts[4]; 
var id = parseInt(parts[5]); 
3

你可以在这样的每一个 '/' 字符分割你的网址:

var url = "something.com/messages/username/id"; 
var array = url.split('/'); 
// array[2] contains username and array[3] contains id 
4

我想你可以使用window.location.href来获取URL然后string.split()的网址为/

var urlParts = window.location.href.split("/"); 
var username = urlParts[4]; 
var id = urlParts[5]; 
+0

为什么选择投票? – 2012-02-11 16:31:42