raindust

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
.  ... .../test.html?str=123456
如何用Javascript接收类似上面的url参数呢?这个问题网上有很多答案,看了看,主要有两种,一个是利用字符串的截取,另一种是利用正则表达式。
正则式

function QueryString(item){
     var sValue=location.search.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"))
     return sValue?sValue[1]:sValue
}


alert(QueryString('str'));

不足就是每次只能选一个参数,当然了,你也可以修改下上面脚本,为 QueryString(item) 函数添加一个参数,例如:QueryString(item,pos) ,不过还要修改相应表达式,较为麻烦,而且没有下面这种方法灵活。

字符串(摘自:《JavaScript: The Definitive Guide, 5th Edition》)

function getArgs( ) {
     var args = new Object( );
     var query = location.search.substring(1);      // Get query string
     var pairs = query.split("&");                  // Break at ampersand
     for(var i = 0; i < pairs.length; i++) {
         var pos = pairs[i].indexOf('=');           // Look for "name=value"
         if (pos == -1) continue;                   // If not found, skip
         var argname = pairs[i].substring(0,pos); // Extract the name
         var value = pairs[i].substring(pos+1);     // Extract the value
         value = decodeURIComponent(value);         // Decode it, if needed
         args[argname] = value;                     // Store as a property
     }
     return args;                                   // Return the object
}


alert(getArgs()['str']);

alert(getArgs().str);
posted on 2009-01-12 17:59  ymz  阅读(332)  评论(0编辑  收藏  举报