使用正則表達式对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();
使用正則表達式对URL进行解析的更多相关文章
- Java正則表達式入门
众所周知,在程序开发中,难免会遇到须要匹配.查找.替换.推断字符串的情况发生,而这些情况有时又比較复杂,假设用纯编码方式解决,往往会浪费程序猿的时间及精力.因此,学习及使用正則表達式,便成了解决这一 ...
- Perl入门(四)Perl的正則表達式
正則表達式是Perl语言的特色.主要的语法不是非常难,可是编写一个符合需求.高效的正則表達式.还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正則表達式内容/; 作用:查找匹配内容中是 ...
- 经常使用的正則表達式归纳—JavaScript正則表達式
来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正則表達式的优先级,下表从最高优先级到最低优先级列出各种正則表達式操作符的优先权顺序: 2.经常使用的正則 ...
- iOS_正則表達式
iOS 正則表達式 正則表達式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE).计算机科学的一个概念. 正則表達式使用单个字符 ...
- 网页抓取信息(php正則表達式、php操作excel)
1.问题描写叙述 实现对固定网页上自己须要的信息抓取,以表格形式存储. 我是拿wustoj上的一个排行榜来练习的,地址:wustoj 2.思路 网页自己就简单学习了一下php,刚好用它来做点事情吧,我 ...
- jQuery源代码学习:经常使用正則表達式
转载自:http://nuysoft.iteye.com/blog/1217898 经常使用的数字正则(严格匹配) 正则 含义 ^[1-9]\d*$ 匹配正整数 ^-[1-9]\d*$ 匹配负整数 ^ ...
- PHP经常使用正則表達式汇总
1. 平时做站点常常要用正則表達式,以下是一些解说和样例,仅供大家參考和改动使用: 2. "^\d+$" //非负整数(正整数 + 0) 3. "^ ...
- php正則表達式中的非贪婪模式匹配的使用
php正則表達式中的非贪婪模式匹配的使用 通常我们会这么写: $str = "http://www.baidu/.com? url=www.sina.com/"; preg_mat ...
- php中的字符串和正則表達式
一.字符串类型的特点 1.PHP是弱类型语言,其它数据类型一般都能够直接应用于字符串函数操作. 1: <? php 2: echo substr("123456",2,4); ...
随机推荐
- 简单使用EL进行标签的替换
package com.ceshi; public class HtmlShow { public static String transfer(String txt,String cssClass) ...
- 用JS实现倒计时(日期字符串作为参数)
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- HDU——1286找新朋友(欧拉函数+质数打表)
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- BZOJ 4555 [Tjoi2016&Heoi2016]求和 ——分治 NTT 多项式求逆
不想多说了,看网上的题解吧,我大概说下思路. 首先考察Stirling的意义,然后求出递推式,变成卷积的形式. 然后发现贡献是一定的,我们可以分治+NTT. 也可以直接求逆(我不会啊啊啊啊啊) #in ...
- linux监控平台搭建-cpu
linux监控平台搭建-cpu 目前服务器的主流CPU是intel或者AMD.到底主频是什么.多核.多线程.并发.并行.超频.一级缓存.二级缓存.三级缓存.i386.x86 cpu:含有算术逻辑.控制 ...
- Entity Framework表名默认自动变为复数形式等常见问题解决方法
今天使用了一下手写EntityFramework,发现一些常见的问题,做个记录: 1.以前使用模板生成不太在意的问题,就是在定义实体类时,如果没映射注释,自动映射的表名会变成复数形式 如:表名==&g ...
- SharePoint 2013 中的 URL 和标记
SharePoint 2013 中的 URL 的类型 SharePoint 2013 分析 URL 字符串以基于指定的协议(例如,http:)确定 URL 的格式或确定正 ...
- HDU1071 The area
Ignatius bought a land last week, but he didn't know the area of the land because the land is enclos ...
- 【CF1028A】Find Square(签到)
题意:给定矩阵里,找到由B构成的矩形的中心 n,m<=115 思路: #include<cstdio> #include<cstring> #include<str ...
- 【BZOJ3529】数表(莫比乌斯反演,BIT,自然溢出)
题意: 思路: #include<cstdio> #include<cstring> #include<string> #include<cmath> ...