JavaScript解析url

Posted 码上暴富

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript解析url相关的知识,希望对你有一定的参考价值。

js解析url


<script>  
/** 
*@param {string} url 完整的URL地址 
*@returns {object} 自定义的对象 
*@description 用法示例:var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); 
myURL.file='index.html' 

myURL.hash= 'top' 

myURL.host= 'abc.com' 

myURL.query= '?id=255&m=hello' 

myURL.params= Object = { id: 255, m: hello } 

myURL.path= '/dir/index.html' 

myURL.segments= Array = ['dir', 'index.html'] 

myURL.port= '8080' 

myURL.protocol= 'http' 

myURL.source= 'http://abc.com:8080/dir/index.html?id=255&m=hello#top' 

*/  
function parseURL(url) {  
 var a =  document.createElement('a');  
 a.href = url;  
 return {  
 source: url,  
 protocol: a.protocol.replace(':',''),  
 host: a.hostname,  
 port: a.port,  
 query: a.search,  
 params: (function(){  
     var ret = {},  
         seg = a.search.replace(/^\\?/,'').split('&'),  
         len = seg.length, i = 0, s;  
     for (;i<len;i++) {  
         if (!seg[i]) { continue; }  
         s = seg[i].split('=');  
         ret[s[0]] = s[1];  
     }  
     return ret;  
 })(),  
 file: (a.pathname.match(/\\/([^\\/?#]+)$/i) || [,''])[1],  
 hash: a.hash.replace('#',''),  
 path: a.pathname.replace(/^([^\\/])/,'/$1'),  
 relative: (a.href.match(/tps?:\\/\\/[^\\/]+(.+)/) || [,''])[1],  
 segments: a.pathname.replace(/^\\//,'').split('/')  
 };  
}    

//var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');  
var myURL = parseURL('http://localhost:8080/test/mytest/toLogina.ction?m=123&pid=abc');  
alert(myURL.path);  
alert(myURL.params.m);  
alert(myURL.params.pid);  
</script>

js查询url


<script>  
function getQueryString(name) {
                // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
                if (location.href.indexOf("?") == -1 || location.href.indexOf(name + '=') == -1) {
                    return '';
                }
                // 获取链接中参数部分
                var queryString = location.href.substring(location.href.indexOf("?") + 1);
                queryString = decodeURI(queryString);
                // 分离参数对 ?key=value&key2=value2
                var parameters = queryString.split("&");
                var pos, paraName, paraValue;
                for (var i = 0; i < parameters.length; i++) {
                    // 获取等号位置
                    pos = parameters[i].indexOf('=');
                    if (pos == -1) {
                        continue;
                    }
                    // 获取name 和 value
                    paraName = parameters[i].substring(0, pos);
                    paraValue = parameters[i].substring(pos + 1);

                    // 如果查询的name等于当前name,就返回当前值,同时,将链接中的+号还原成空格
                    if (paraName == name) {
                        return unescape(paraValue.replace(/\\+/g, " "));
                    }
                }
                return '';
            },
</script>

以上是关于JavaScript解析url的主要内容,如果未能解决你的问题,请参考以下文章

JSON Javascript,解析 URL [重复]

求教下面的javascript代码意思

javascript与php字符串解析函数

URL的PHP​​和哈希/片段部分

华为OD机试 - 热点网络统计(JavaScript) | 机试题+算法思路+考点+代码解析 2023

VSCode自定义代码片段3——url大全