`
hudeyong926
  • 浏览: 2015172 次
  • 来自: 武汉
社区版块
存档分类
最新评论

JS URL工具类

阅读更多

URL即:统一资源定位符 (Uniform Resource Locator, URL)
完整的URL由这几个部分构成:
scheme://host:port/path?query#fragment
scheme:通信协议
常用的http,ftp,maito等

host:主机
服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。

port:端口号
整数,可选,省略时使用方案的默认端口,如http的默认端口为80。

path:路径
由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

query:查询
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。

fragment:信息片断
字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

对于这样一个URL
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

2,window.location.protocol
URL 的协议部分
本例返回值:http:

3,window.location.host
URL 的主机部分
本例返回值:www.x2y2.com

4,window.location.port
URL 的端口部分
如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""

5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html

6,window.location.search
查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值:?ver=1.0&id=6

7,window.location.hash
锚点
本例返回值:#imhere

 

url工具类

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');
  
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'

取得URL的参数,以对象形式返回!
var getParam = function(path){
    var result = {},param = /([^?=&]+)=([^&]+)/ig,match;
    while((match = param.exec(path)) != null){
        result[match[1]] = match[2];
    }
    return result;
}
 
Object.keys = Object.keys || function(obj){
    var result = [];
    for(var i in obj){
        if(obj.hasOwnProperty(i)){
            result.push(i)
        }
    }
    return result;
}
var path = "http://tieba.baidu.com/f?ct=318767104&tn=baiduKeywordSearch&sc=1&pn=0&rn=50&lm=4&rs4=2&rs3=2&word=%D0%C2%BE%D3%D5%D1%C4%CB&frs=jpq";
 
var r = getParam(path);
alert(Object.keys(r))//ct,tn,sc,pn,rn,lm,rs4,rs3,word,frs
//2010.9.22更新
function getParam(name){//获取参数值 
    var sUrl = window.location.search.substr(1);
    var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"));
    return (r == null ? null : unescape(r[2]));
}

 

 

 
 
分享到:
评论

相关推荐

    qrcode的javascript工具类

    JS生成QrCode的工具类,微信支付宝等支付URL可以用这个

    js常用参数检验工具类

    该javaScript库主要包括了如下模块: 1、手机号码校验; 2、身份证校验;3、邮箱校验; 4、字符串常用类; 5、简单四则运算;6、正则表达式生成工具类;... 8、url工具;9、数组工具类;10、对象工具类

    C#200个基础工具类大全.zip

    URL的操作类;XML操作类;处理多媒体的公共类;弹出消息类;二维码操作类;汉字转拼音;加密解密;科学计数,数学;类型转换;配置文件操作类;上传下载;时间操作类;视频帮助类;数据展示控件绑定数据类;条形码帮助类;图片操作...

    as3比较详尽的工具类

    JavaScript.as ---------------------- javascript交互 HTTPS.as ---------------------- url随机数 SNS.as ---------------------- 各个sns网站的分享 timeline: prevPlay.as ---------------------...

    js常用工具函数--通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型、数组随机洗牌算法、检测密码强度等等..

    JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...

    urlUtils:Javascript URL实用程序

    Javascript URL实用工具集合 GETfiler :URL GET参数操作类 一个用于管理URL参数的简单js对象。 该类库的主要焦点是提供对URL参数的简单操作,因此返回的对象和数组属于参数。 完整更新的URL对象在实例化类的url...

    Util.js:javascript常用工具函数集合

    javascript常用工具函数集合 具体的函数参数可在源码中看 依赖 Jquery,Handlebar Examples formatDate 格式化日期 var date = new Date(); Util.formatDate(date,'YYYY/MM/DD hh:mm:ss'); // 2014/11/12 11:12:13...

    js blob类型url的视频下载问题的解决

    blob下载问题的详细描述 我想用src url blob:...1、打开More Tools(更多工具)→Developer Tools(开发工具) 2、检查视频标签中是否有这样的东西: &lt;video preload= src=blob:htt

    JS实现AES-GCM加密,java实现AES-GCM解密。.md

    在工作中会经常遇到密码加密,URL传参要进行加密,在此我参照一个例子将用java实现的AES加解密程序用实例写出。JS实现AES-GCM加密,java实现AES-GCM解密

    使用Springboot上传图片并将URL保存到数据库中

    使用Spring Boot上传文件的简单Demo

    C#常用公共类源码(100多个)可以直接使用.rar

    ,RDLC直接打印帮助类,ResourceManager,RMB,SqlHelper,SQL语句拦截器,URL的操作类,VerifyCode,XML操作类,上传下载,二维码操作类,共用工具类,其他,分词辅助类,分页 ,加密解密,压缩解压缩,各种验证帮助类,图片,图片操作...

    表单校验插件

    ImgUrl: "img/error.png", // 感叹号图标url地址 AutoScroll:[true,270], // 第一个不通过校验的文本框,自动滚动到该位置 true/false ,第二个参数,距离顶部像素 submitSpecialData: true // ajax提交时,另外加...

    JavaScript语言参考手册

    Netscape AppFoundry Online 是应用程序起始之源、技术信息、工具和用于快速创建和动态发布开放的 Intranet 应用程序的专家论坛。该站在资源区中包括解决问题的信息,以及设置 JavaScript 环境的额外帮助。 ...

    js学习笔记大全

    函数名(参数列表) // 调用这工具类里面的函数 * c$().函数名(参数列表) // 调用这工具类里面的函数 */ var c$ = window.c$ = function(arg, dom) { // 如果没有参数,则返回 本对象;让程序可以这样写: c$()....

    超级多的C#辅助类大全

    40. 共用工具类 41. 其他 42. 分词辅助类 43. 分页 44. 加密解密 45. 压缩解压缩 46. 各种验证帮助类 47. 图片 48. 图片操作类 49. 图片验证码 50. 处理多媒体的公共类 51. 处理枚举类 52. 字符串 53. ...

    扒网站工具,看好哪个网站,指定好URL,自动扒下来做成模版

    看好哪个网站,指定好URL,自动扒下来做成 html模版。并且所下载的css、js、图片、html文件会自动分好类保存到特定文件夹! 然后使用 模版计算工具,自动将 html模版计算合成为 网市场云建站系统 可用的模版。

    Ajax.js:封装了Ajax操作的简易工具

    Ajax.js 封装了Ajax操作的简易工具 这里采用单例模式封装成一个对象,即只有一个全局的变量将其赋值给Ajax,该对象有一个request方法。request有两个参数,第一个为请求的url(必要的),字符串类型,第二个opt为配置...

    editplus3.4

    editplus3.4,EditPlus是一款功能强大的文字处理软件...程序内嵌网页浏览器,其它功能还包含 FTP 功能、HTML 编辑、URL 突显、自动完成、剪贴文本、行列选择、强大的搜索与替换、多重撤销/重做、拼写检查、自定义快捷键

    StarUMLJS:适用于StarUML图表绘制工具JavaScript代码生成插件

    StarUMLJS 适用于StarUML图表绘制工具JavaScript代码生成插件。... 使用“类”的标准原型JS定义支持的UML概念该工具当前支持StarUML模型的子集: 班级课堂方法(均视为公开课程) 类的属性类文档方

    工具提示:JavaScript工具提示组件

    安装: component install darsain/tooltip下载最新的稳定版本的独立版本: 组合档案 -25 KB源映射 -10 KB,2KB压缩 -4.5 KB包括过渡和类型当隔离jsfiddle上的问题时,请使用上面的 URL。文献资料可以在目录中找到。...

Global site tag (gtag.js) - Google Analytics