码迷,mamicode.com
首页 > Web开发 > 详细

使用正則表達式对URL进行解析

时间:2017-07-24 13:26:57      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:track   data   .com   索引   contex   资源   使用   r.js   域名   

对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();


使用正則表達式对URL进行解析

标签:track   data   .com   索引   contex   资源   使用   r.js   域名   

原文地址:http://www.cnblogs.com/brucemengbm/p/7228051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!