对URL进行解析,一般用到的參数有:

1、协议 如http,https

2、域名或IP

3、port号,如7001,8080

4、Web上下文

5、URI。请求资源地址

6、请求參数

一个URL演示样例:

http://i0.sinaimg.cn:8080/blog/register.jsp?

type=a&name=test1234

这里仅仅对前5个參数进行匹配解析:

	//使用字符索引对URL进行解析
function parseURL(url){
//解析协议
var protocal = url.substring(0, url.indexOf(':'));
//alert('protocal:' + protocal); //解析域名和端口
var tmp = url.substr(url.indexOf('//') + 2); var domain = tmp.substr(0, tmp.indexOf("/"));
//alert('domain:' + domain); var domainName,port;
var idx = domain.indexOf(":"); if(idx>0){
domainName = domain.substr(0,idx);
port = domain.substr(idx + 1);
} else{
domainName = domain;
} //alert('domainName:' + domainName + ',' + port); //解析web context
var tmp2 = tmp.substr(tmp.indexOf("/") + 1);
var webContext = tmp2.substr(0,tmp2.indexOf('/'));
//alert('webContext:' +webContext); //解析URI
var uri = tmp2.substr(tmp2.indexOf('/'));
//alert('uri:' + uri); return {
protocal: protocal,
domainName:domainName,
port: port,
webContext: webContext,
uri: uri
}
} function testParseUrl(){
var url = "http://ppp.com:8090/mximprove/mxt/scripts/views/MainViewController.js";
var urlObj = parseURL(url);
document.writeln('<br>' + urlObj.protocal);
document.writeln('<br>' + urlObj.domainName);
document.writeln('<br>' + urlObj.port);
document.writeln('<br>' + urlObj.webContext);
document.writeln('<br>' + urlObj.uri);
} //testParseUrl(); //---------------------------------------------------------------------------------------------------------------- //使用正則表達式对URL进行解析
function parseUrl(url){
var reg = /^(\w+):\/\/([^\/:]*)(? ::(\d+))?\/(.*)/
reg.exec(url); alert(RegExp.$1 + ',' + RegExp.$2 + ',' + RegExp.$3 + ',' + RegExp.$4+ ',' + RegExp.$5);
} function parseUrl2(url){
var reg = /^(\w+):\/\/([^\/:]*)(? ::(\d+))?\/([^\/]*)(\/.*)/
reg.exec(url); alert(RegExp.$1 + ',' + RegExp.$2 + ',' + RegExp.$3 + ',' + RegExp.$4+ ',' + RegExp.$5);
} function testParseUrl(){
var url = "http://ppp.com:8090/mximprove/mxt/scripts/views/MainViewController.js"; parseUrl2(url); var url2 = "http://ppp.com/mximprove/mxt/scripts/views/MainViewController.js"; parseUrl2(url2); } //testParseUrl();

最新文章

  1. AspNetPager分页控件样式的使用
  2. mysql命令行以及mysql workbence查询结果中文乱码的解决方法
  3. iis7配置网站容易出现的问题(转)
  4. wampserver环境下,apache本地下设置多个域名
  5. HTML5中querySelector()和querySelectorAll()
  6. ASP.Net 获取当前时间,包含各种时间格式
  7. 高性能、高容错、基于内存的开源分布式存储系统Tachyon的简单介绍
  8. 设置apt-get
  9. Python设计模式——建造者模式
  10. .net+easyui--combobox
  11. nginx 要改进的地方基础
  12. 工资表的生成、显示、修改工资,应用transactionscope 分布式事务
  13. jQuery 改变Form 指向的 Action
  14. .NET 4 并行(多核)编程系列之三 从Task的取消
  15. json处理三部曲之第二曲:利用Jackson处理json
  16. 关于array_agg 函数
  17. SSH相关小应用
  18. SaaS应用十大关键NFR - 第2部分
  19. Java的XML解析
  20. class-dump 使用

热门文章

  1. C++ 获取网页源码码的操作
  2. 大数据学习——spark-steaming学习
  3. [java开发篇][dom模块] 遍历解析xml
  4. ABP介绍
  5. netcore命令行部署|跨域问题
  6. 【Luogu】P3355骑士共存问题(最小割)
  7. bzoj 3544 [ONTAK2010]Creative Accounting 贪心
  8. eclipse testng插件安装
  9. hdu 3992 AC自动机上的高斯消元求期望
  10. La 3942 字符串+dp