zoukankan      html  css  js  c++  java
  • 使用正則表達式对URL进行解析

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


  • 相关阅读:
    Lambda Expression in C#
    DirectorySearcher LDAP
    摘录 LDAP
    The return types for the following stored procedures could not be detected
    无法调试存储过程,无法启动T-SQL调试
    根据窗口句柄显示窗体
    还原数据库时提示空间不足
    xml格式发送
    ../ 上一级目录
    匿名函数 invoke
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7228051.html
Copyright © 2011-2022 走看看