例一:

/*
解析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;
//$1:(([^:]+:)\/\/(([^:\/\?#]+)(:\d+)?))
//$2:([^:]+:)
//$3:(([^:\/\?#]+)(:\d+)?)
//$4:([^:\/\?#]+)
//$5:(:\d+)?
//$6:(\/[^?#]*)?
//$7:(\?[^#]*)?
//$8:(#.*)?
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;
}

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

  1. 「Python 编程」编码实现网络请求库中的 URL 解析器

    摘要:怎么写出更短的代码并不是这次要讨论的话题.今天我们来研究一下:运行代码的计算机是如何找到目标服务器的? 相信各位 Python 开发者都用过 Requests 库,有些朋友还用过 WebSock ...

  2. 简单的URL解析

    简单的URL解析,直接举例说明了 function getUrl(){ //如果存在则取到来后面的参数,注意,?不需要取出,substring从1开始,否则取""; var qs ...

  3. ThinkPHP中URL解析原理,以及URL路由使用教程!

    几个概念: THINKPHP 是一个MVC框架,使用PATHINFO解析出分组名,模块名,方法名,以及参数. PATHINFO:就是 http://localhost/index.php/Home/I ...

  4. Django的url解析

    Django中采用正则表达式来匹配所请求的url,这个叫做URLconf,作为MVC中的C(控制器), 这样再调用相应的试图,达到控制器控制试图的显示的效果. 看一下Django的url解析过程 第一 ...

  5. 百度url解析Joe.Smith整理大全

    百度url解析Joe.Smith整理大全 百度url解析Joe.Smith整理大全...1 本文链接:http://blog.csdn.net/qq_26816591/article/details/ ...

  6. jsp页面获取参数的方法(url解析、el表达式赋值、session取值)【原创】

    最近使用myEclispse做网站,使用jsp+js+css做页面,网站中常用到从列表进入详情页面的跳转,下面对详情页面的值填充方式做一个简单总结: 1.url中使用request获取参数 jsp上方 ...

  7. 用正则把url解析为对象

    用正则把url解析为对象 <!DOCTYPE html><html><head><meta charset="utf-8">< ...

  8. [转帖]kubernetes ingress 在物理机上的nodePort和hostNetwork两种部署方式解析及比较

    kubernetes ingress 在物理机上的nodePort和hostNetwork两种部署方式解析及比较 https://www.cnblogs.com/xuxinkun/p/11052646 ...

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

    <QT Creator快速入门>这本书有一章介绍model和modeless的概念时,用到了两个窗口互相切换的例子.但是原文对该例子的说明非常模糊不清,现整理如下. 1,要求:登陆界面.主 ...

随机推荐

  1. tomcat源码阅读之容器(Container)

    一. 实现容器的接口是Container接口,Tomcat中共有四种类型的容器: 1.Engine:表示整个Catalina Servlet引擎: 2.Host:表示含有一个或者多个Context容器 ...

  2. java的关键字:static、final

    java的 static: 性质 静态对象 非静态对象 拥有属性: 是类共同拥有的 是类各对象独立拥有的 内存分配: 内存空间上是固定的 空间在各个附属类里面分配 分配顺序: 先分配静态对象的空间 继 ...

  3. python Django Nginx+ uWSGI 安装配置

    环境: CentOS7.python-3.5.3.Nignx 1.10.3 .Django 1.10.6.uWSGI 2.0.14 django项目目录:/var/webRoot/p1 项目结构: 基 ...

  4. Servlet 串联过滤器

    1. 串联Servlet过滤器的工作流程 2. 创建两个过滤器 MyFilter1和MyFilter2 1) MyFilter1 package com.example.filter; import ...

  5. phper必知必会之数组指针(四)

    数组指针 1.介绍几个数组指针的函数 current() - 返回数组中的当前单元 end() - 将数组的内部指针指向最后一个单元 prev() - 将数组的内部指针倒回一位 reset() - 将 ...

  6. struts中指定编码(使用Filter后仍然乱码)

    https://www.cnblogs.com/oldinaction/p/5167481.html 概述: Tomcat默认是 ISO编码,不支持中文.尝试过自己写 Filter,在web.xml中 ...

  7. 背景JS动态网格特性

    将下面代码,粘贴到设置html首页代码即可 <script type="text/javascript"> /** * Copyright (c) 2016 hustc ...

  8. java IO字符流

    字节流:因为内存中数据都是字节,二进制数据. 字符流:方便处理文本数据.字符流是基于字节流的. ascii 编码表,并且各国都有自己的编码表. unicode码表,世界码表.优化后 utf-8码表. ...

  9. bzoj3143 游走

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  10. HTML5: input:file上传类型控制

    ylbtech-HTML5: input:file上传类型控制   1. 一.input:file 属性返回顶部 一.input:file属性 属性值有以下几个比较常用: accept:表示可以选择的 ...