两个关于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;
}
时间: 2024-10-06 14:44:20

两个关于URL解析的例子的相关文章

用正则把url解析为对象

用正则把url解析为对象 <!DOCTYPE html><html><head><meta charset="utf-8"><title>string and reg</title></head><body><script>/*一.知识点1. \ 将下一个字符标记为或特殊字符.或原义字符.或向后引用.或八进制转义符.例如, 'n' 匹配字符 'n'.'\n' 匹配换行符.序列 '

URL地址重写例子(Helicon)

# Helicon ISAPI_Rewrite configuration file# Version 3.1.0.86 #RewriteEngine on RewriteRule ^/esf/.+(/.+){4,}$ /404.aspx?$0RewriteRule ^/esf/attn_1$ /esf/qh1/ [NC,R=301]RewriteRule ^/esf/attn_1_sid_0$ /esf/qh1/ [NC,R=301]RewriteRule ^/zuf/attn_1$ /zuf

比较两个数大小汇编解析

比较两个数的大小, 用C语言写很容易 int compare1(int x, int y) { if (x > y) { return 1; } else if (x == y) { return 0; } else { return -1; } } 用gcc生成powerPC ppu汇编指令, 用默认的-O选项 生成的汇编代码: .compare1: .LFB39: stdu 1,-80(1) .LCFI3: std 31,72(1) .LCFI4: mr 31,1 .LCFI5: mr 0,

简单的URL解析

简单的URL解析,直接举例说明了 function getUrl(){ //如果存在则取到来后面的参数,注意,?不需要取出,substring从1开始,否则取""; var qs = location.search.length>0?location.search.substring(1):""; //保存数据对象 name=iwen var args = {}; var item = []; var name = null; var value = null

android content provider 中的URL解析总是出问题?求指导!!!

java.lang.IllegalArgumentException: Unknown URL content:// 不管是自己写或者用别的的代码在我的eclipse中都是报这个错误 很怪,我的URL地址绝对没有写错,是不是和使用版本有关系?我的google提供的eclipse,sdk用的2.3.3 android content provider 中的URL解析总是出问题?求指导!!!

JS URL解析

function urlParse(url) { try { var hostexp = /http\:\/\/([^\/]+)/; var hoststr = url.match(hostexp)[0]; var hosttmp = hoststr.replace("http://", "").split(":"); var pathtmp = url.replace(hoststr, "").split("?&q

使用dom4j解析XML例子

包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), TestDom4jReadExmple.java(测试解析的结果) 代码运行前需先导入dom4j架包. studentInfo.xml文件(该文件放在本项目目录下)内容如下: <?xml version="1.0" encoding="gb2312"?> <students> <student age=&qu

python中url解析

url解析 提取域名domain from urllib.parse import urlparse url='http://www.freebuf.com/articles/437.html' url_parse = urlparse(url) print(url_parse) print(url_parse.netloc) 输出: ParseResult(scheme='http', netloc='www.freebuf.com', path='/articles/437.html', p

关于Qt5(1)-- 两个窗口互相切换的例子

<QT Creator快速入门>这本书有一章介绍model和modeless的概念时,用到了两个窗口互相切换的例子.但是原文对该例子的说明非常模糊不清,现整理如下. 1,要求:登陆界面.主界面互相切换,且任何时刻用户只能看到一个界面: 2,思路: (1) 登录界面到主界面:使用model对话框,在登录界面响应前不能操作主界面: (2) 主界面到登录界面:主界面响应过程如下. 先调用close()命令把主界面隐藏起来:再新建一个登录界面的对象(为什么新建对象能指向登录界面?待查):等待登录界面响