一个js通用函数,通过正则表达式获取url的各个部分。

这个函数的功能就是把一段url的域名、路径、文件名等等用数组返回,通过数组的索引访问。

这个函数的核心是一段正则表达式,这段正则表达主要参考了微软的脚本文档。

注释的内容较多,所以各个部分我就不一一说明了。这个函数主要是为了另外的一个功能"通过cookie控制页面跳转"而开发的。下一篇博文,我就会详细介绍。并且附上完整的示例下载。

/********************************************************************
**
**比较通用的正则表达式,捕获url各个部分。
**注意各部分基本上都包含了相应的符号,例如端口号如果捕获成功,那就是':80'
**函数返回一个正则表达式捕获数组。
**注意,现在获得的是一个数组,所以需要通过arr[i]的方式引用。
**正则表达式所有的匹配说明::.........
**$0
**整个url本身。如果$0==null,那就是我的正则有意外,未捕获的可能。
**有一种未捕获的情况已经被发现,那就是域名后面没有以'/'结尾,如:'http://localhost'
**但是经过我的测试,IE和firefox会自动把域名后面加上'/'的。
**$1-$4  协议,域名,端口号,还有最重要的路径path!
**$5-$7  文件名,锚点(#top),query参数(?id=55)
**
*********************************************************************/	
	
	function UrlRegEx(url)
	{	
		//如果加上/g参数,那么只返回$0匹配。也就是说arr.length = 0
		var re = /(/w+):([^/:|//]+)(/:/d*)?(.*//)([^#|/?|/n]+)?(#.*)?(/?.*)?/i;
		//re.exec(url);
		var arr = url.match(re);
		return arr;
	
	}
//--------示例代码:
	function getPath()
	{
		return UrlRegEx(location.href)[4];	
	}
	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115228321发行时间: 2010年06月01日 地区: 大陆 语言: 简体文 简介: 编辑推荐 每个程序员都会遇到需要使用正则表达式的情况,但是要用好正则表达式却并不容易。本书提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,本书对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其包括c#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET的实例。   本书主要包括以下内容:   通过一个精练的教程理解正则表达式的基本原理和技巧;   在不同的编程语言和脚本语言有效使用正则表达式;   学习如何对输入进行合法性检查和格式化;   处理单词、文本行、特殊字符和数值;   学习如何在URL、路径、标记语言和数据交换使用正则   表达式;   学习更高深的正则表达式特性的微妙之处;   理解在不同语言正则表达式的APl、语法和行为之间的   区别;   创建更好的正则表达式来满足个性化的需求。 内容简介 本书讲解了基于8种常用的编程语言使用正则表达式的经典实例。书提供了上百种可以在实战使用的实例,以帮助读者使用正则表达式来处理数据和文本。对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,本书给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。   本书的读者对象是对正则表达式感兴趣的软件开发人员和系统管理员。本书旨在教会读者很多新的技巧以及如何避免语言特定的陷阱,读者可以通过本书提供的实例解决方案库来解决实践的复杂问题。 作者简介 Jan Goyvaerts领导着Just Great Software公司,他在这个公司设计和开发了一些最流行的正则表达式软件。他的产品包括RegexBuddy,世界上唯一可以模拟l5种正则表达式流派特性的正则表达式编辑器,以及PowerGREP,Microsoft Windows平台上功能最强大的9rep工具。 目录: 第1章 正则表达式简介 1.1 正则表达式的定义 1.2 使用正则表达式的工具 第2章 正则表达式的基本技巧 2.1 匹配字面文本 2.2 匹配不可打印字符 2.3 匹配多个字符之一 2.4 匹配任意字符 2.5 匹配文本行起始和/或文本行结尾 2.6 匹配整个单词 2.7 Unicode代码点、属性、区块和脚本 2.8 匹配多个选择分支之一 2.9 分组和捕获匹配的子串 2.10 再次匹配先前匹配的文本 2.11 捕获和命名匹配子串 2.12 把正则表达式的一部分重复多次 2.13 选择最小和最大重复次数 2.14 消除不必要的回溯 2.15 避免重复逃逸 2.16 检查一个匹配,但不添加到整体匹配 2.17 根据条件匹配两者之一 2.18 向正则表达式添加注释 2.19 在替代文本添加字面文本 2.20 在替代文本添加正则匹配 2.21 把部分正则匹配添加到替代文本 2.22 把匹配上下文插入到替代文本 第3章 使用正则表达式编程 3.1 在源代码使用字面正则表达式 3.2 导入正则表达式函数库 3.3 创建正则表达式对象 3.4 设置正则表达式选项 3.5 检查是否可以在目标字符串找到匹配 3.6 检查正则表达式能否整个匹配目标字符串 3.7 获取匹配文本 3.8 决定匹配的位置和长度 3.9 获取匹配文本的一部分 3.10 获取所有匹配的列表 3.11 遍历所有匹配 3.12 在过程代码对匹配结果进行验证 3.13 在另一个匹配查找匹配 3.14 替换所有匹配 3.15 使用匹配的子串来替换匹配 3.16 使用代码生成的替代文本来替换匹配 3.17 替换另一个正则式匹配的所有匹配 3.18 替换另一个正则式匹配之间的所有匹配 3.19 拆分字符串 3.20 拆分字符串,保留正则匹配 3.21 逐行查找 第4章 合法性验证和格式化 4.1 E-mail地址的合法性验证 4.2 北美电话号码的合法性验证和格式化 4.3 国际电话号码的合法性验证 4.4 传统日期格式
### 回答1: 您好,第一个问题属于技术问题,可以回答。您可以使用以下代码获取url的参数: ```python import re url = "https://www.example.com?param1=value1&param2=value2&param3=value3" params = re.findall(r'\?(\S+)', url)[0].split('&') for param in params: key, value = param.split('=') print(f"{key}: {value}") ``` 以上代码使用正则表达式字符串分割的方式获取url的参数,并将其打印出来。您可以根据您的具体需求进行修改。希望能够帮到您! ### 回答2: 使用正则表达式获取URL的参数可以通过以下步骤实现: 1. 定义一个正则表达式模式来匹配URL的参数。例如,可以使用类似于`(\w+)=(\w+)`的模式来匹配参数名和参数值。 2. 使用编程语言正则表达式函数来查找URL匹配正则表达式模式的部分。例如,在Python,可以使用`re.findall()`函数来匹配所有符合模式的参数对。 3. 遍历匹配的参数对列表,并提取参数名和参数值。例如,在Python,可以使用分组功能`(\w+)`和`(\w+)`来提取参数名和参数值。 4. 将提取的参数名和参数值存储在合适的数据结构,以便后续使用。例如,可以使用字典来存储参数名和参数值的键值对。 以下是一个简单的Python示例: ```python import re def get_url_parameters(url): pattern = r"(\w+)=(\w+)" matches = re.findall(pattern, url) parameters = {} for match in matches: parameter_name = match[0] parameter_value = match[1] parameters[parameter_name] = parameter_value return parameters url = "https://www.example.com/?name=Alice&age=25&gender=female" parameters = get_url_parameters(url) print(parameters) ``` 运行上述代码,输出将是一个包含参数名和参数值的字典: `{'name': 'Alice', 'age': '25', 'gender': 'female'}` ### 回答3: 使用正则表达式获取URL的参数可以通过分析URL的结构,截取参数部分,并使用正则表达式模式进行匹配操作。以下是一个示例代码: ```python import re def extract_params_from_url(url): pattern = r"[?&](\w+)=([^&]+)" matches = re.findall(pattern, url) params = {} for match in matches: key = match[0] value = match[1] params[key] = value return params # 示例URL url = "https://www.example.com/page?username=johndoe&id=12345" params = extract_params_from_url(url) print(params) ``` 上述代码的`extract_params_from_url`函数使用正则表达式模式`[?&](\w+)=([^&]+)`,该模式匹配参数名和参数值,并且将它们存储在字典。最后调用该函数,并传入示例URL,即可获取URL的参数。 输出结果为:`{'username': 'johndoe', 'id': '12345'}`。 需要注意的是,上述代码正则表达式模式仅适用于常见的URL格式,如果URL的参数部分具有其他特殊结构,可能需要根据实际情况调整正则表达式的模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值