将URL分解为其组件



我使用的是javascript,我想获取一个URL字符串,并将其分解为其组件,如主机、路径和查询参数。

我需要这样做才能获得其中一个查询参数,它本身就是一个URL,因此被编码在原始URL字符串中。

我觉得应该有一种简单的方法在Javascript中实现这一点。也许是这样的:

var what_I_Want = url("http://www.domain.com?queryArg1=somequeryargument").getQueryArgumentValue("queryArg1");

parseUri函数将完成所需的一切

编辑或者,您可以让DOM为您做艰苦的工作,并访问URL不同部分的新创建的a对象的属性。

<script type="text/javascript" language="javascript">
newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
</script>
Hope this will help..

在javascript中,您可以通过对params使用split((并对协议和域使用location对象来实现这一点,就像Carl建议的一样

你也可以使用parseUri作为Tak建议的

还有一个jQuery插件,如果您已经在项目中使用jQuery,它可以使解析更容易:https://github.com/allmarkedup/jQuery-URL-Parser#readme

示例:

$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue'

可能不是最好的方法,但在JavaScript中获取查询字符串的一个简单方法是使用以下内容:

 a = "http://www.domain.com?queryArg1=somequeryargument";
 query = a.substring(a.indexOf('?')+1);

然后,您可以根据&'s,然后在=上再次获取所需的任何参数。

抱歉,如果这不是很有帮助,因为它有点低技术的方法:p

编辑:刚刚编写了一个快速的小JavaScript对象来为您获取URL查询参数(有点像(。只在铬中测试过,但理论上它应该可以工作:(

//Quick and dirty query Getter object.
function urlQueryGetter(url){
    //array to store params
    var qParam = new Array();
    //function to get param
    this.getParam = function(x){
    return qParam[x];
    }
    //parse url 
    query = url.substring(url.indexOf('?')+1);
    query_items = query.split('&');
    for(i=0; i<query_items.length;i++){
        s = query_items[i].split('=');
        qParam[s[0]] = s[1];
    }
}
//Useage
var bla = new urlQueryGetter("http://www.domain.com?queryArg1=somequeryargument&test=cheese");
alert(bla.getParam('test'));

相关内容

  • 没有找到相关文章

最新更新