分割字符串并使用javascript获取网址值的最佳方法

时间:2011-07-11 19:24:43

标签: javascript jquery

我的字符串在下面的网址中

?type=english&time=today

我希望得到类型和时间的值,并且如下所示:

var str="?type=english&time=today";

var spt =str.split("&");
var typeval =spt[0].split("=")[1];
var timeval =spt[1].split("=")[1];

document.write(" type :"+typeval+" time : "+timeval);

使用javascript获取值的有效方法是什么。

4 个答案:

答案 0 :(得分:5)

使用jQuery BBQ's $.deparam功能。

var str='type=english&time=today',
    obj = $.deparam(str),
    typeval = obj.type, // 'english'
    timeval = obj.time; // 'today'

它适用于各种奇特的URL编码数据结构(参见链接的示例)。

答案 1 :(得分:1)

您可以使用gup函数 - 获取url参数:

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];

}

答案 2 :(得分:0)

我总是使用这个脚本:

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

然后

var hash = getUrlVars();
alert(hash['type']);

会给'英语'

它很容易适应你想要的东西

答案 3 :(得分:0)

var obj = {},
    str = "?type=english&time=today";

$.each(str.split(/&|\?/), function(){
    var tmp = this.split('=');
    ( tmp.length>1 ) && ( obj[ tmp[0] ] = tmp[1] );
})

// obj = { type : 'english', time : 'today' }