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