提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

如何使用Javascript取得URL传递的参数,也就是login.html?name=wangye在login.html取得name等于的值。对于动态网页这点很容易办到,比如ASP就可以通过Request.QueryString("name")的方法,但是对于Javascript则有点小麻烦。我一般参考布鲁斯狼(cnBruce) 《在HTML网页中巧用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];
    }
}

使用方法比如要获取login.html?name=wangye传递的wangye,只要在login.html这样调用document.write(gup("name"));这样页面就会显示name=后面的值。