两个关于URL解析的例子
例一:
/* 解析URL查寻串中的name=value参数对 将name=value对存储在对象属性中,并返回对象 alert(getQuery().name) */ function getQuery(){ var obj={}; //定义一个空对象 var arr=location.search.substring(1).split(‘&‘);//获取查寻参数 for(var i=0;i<arr.length;i++) { if(arr[i].indexOf(‘=‘)==-1) //如果没找到就跳过 continue; else { arr[i]=arr[i].split(‘=‘); obj[arr[i][0]]=arr[i][1]; //存储为对象属性 } } return obj; //返回解析后的参数 }
例二:
/* 解析一个url,并生成window.location对象中包含的域 href:‘包含完整的url‘, origin:‘包含协议到pathname之前的内容‘, protocol:‘url使用的协议,包含末尾的:‘, host:‘完整主机名,包含:和端口‘, hostname:‘主机名,不包含端口‘, port:‘端口号‘, pathname:‘服务器上访问资源的路径/开头‘, search:‘query string,?开头‘, hashs:‘#开头的fragment identifier‘ @param{string} url需要解析的url @return{Object} 包含url信息的对象 */ function parseURL(url){ var result={}; var keys=[‘href‘,‘origin‘,‘protocol‘,‘host‘,‘hostname‘,‘port‘,‘pathname‘,‘search‘,‘hashs‘]; var i,len; var reg=/(([^:]+:)\/\/(([^:\/\?#]+)(:\d+)?))(\/[^?#]*)?(\?[^#]*)?(#.*)?/; var matchs=reg.exec(url); if(matchs){ for(i=keys.length-1;i>=0;i--){ result[keys[i]]=matchs[i]?matchs[i]:‘‘; } } return result; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。