通过正则格式化url查询字符串实现代码_javascript技巧
看到项目里通过js数组split方法格式化查询字符串的,突发奇想为什么不能用正则呢,性能如何?于是便有了如下代码:
var url='www.baidu.com?a=123&b=456&c=789&e=dfsdfsdfsdfsdfsdfsdf&f=46545454545454785&g=e23232dsfvdfvdf';
/**
* 格式化查询字符串(正则实现)
* @param url url地址
* @return {Object} 格式化的json对象
*/
function formatUrl(url){
var reg=/(?:[?&]+)([^&]+)=([^&]+)/g;
var data={};
function fn(str,pro,value){
data[decodeURIComponent(pro)]=decodeURIComponent(value);
}
url.replace(reg,fn);
return data;
}
/**
* 格式化查询字符串(数组实现)
* @param url url地址
* @return {Object} 格式化的json对象
*/
function formatUrl2(url){
url=url.replace(/.*\?/,'');
var args={},
items=url.length?url.split("&"):[]
,item=null
,i=0
,len=items.length;
for(i=0;i
args[decodeURIComponent(item[0])]=decodeURIComponent(item[1]);
}
return args;
}
var startTime=new Date();
for(var i=0;iformatUrl2(url);
}
console.log('formatUrl2',(new Date()-startTime)); //formatUrl2 12138
startTime=new Date();
for(var i=0;iformatUrl(url);
}
console.log('formatUrl',(new Date()-startTime)); //formatUrl 12537
测试浏览器是chrme 25;正则实现的函数居然比数组实现的函数要慢(泪奔....)。不过还好,在重复执行一百万次的情况下只慢0.4秒

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

DOS命令是一种在Windows操作系统中使用的命令行工具,它可以用于执行各种系统管理任务和操作。其中一个常用的任务是格式化硬盘驱动器,包括C盘。格式化C盘是一个比较危险的操作,因为它将会清除C盘上的所有数据,并将文件系统重新初始化。在执行这个操作之前,确保你已经备份了重要的文件,并且清楚地了解格式化操作对你的计算机会产生的影响。下面是在DOS命令行中格式化

d盘无法格式化的原因有该盘正在被其他程序或进程使用、该盘上存在损坏的文件系统、硬盘故障和权限问题的。详细介绍:1、D盘无法格式化可能是因为该盘正在被其他程序或进程使用,在Windows操作系统中,如果有程序正在访问D盘上的文件或文件夹,系统将无法执行格式化操作;2、D盘无法格式化可能是因为该盘上存在损坏的文件系统,文件系统是操作系统用来组织和管理存储设备上的文件和文件夹的等等。

光盘格式化是指将光盘的文件系统进行重建和清空的过程,在光盘格式化过程中,所有的数据都会被彻底删除,同时文件系统会被重新建立,以便在光盘上重新存储数据。光盘格式化可以用于保护数据安全、修复光盘故障和清除病毒等目的,在进行光盘格式化时,需要备份重要数据、选择适当的文件系统,并耐心等待格式化完成。

如何优化Java开发中的时间日期格式化解析性能摘要:在Java开发中,时间日期格式化与解析是常见的操作,但是由于时间日期格式复杂多样且处理的数据量庞大,往往会成为性能瓶颈。本文将介绍几种优化Java开发中时间日期格式化解析性能的方法,包括使用缓存、减少对象创建、选择适当的API等。一、引言时间日期格式化与解析在Java开发中非常常见。然而,在实际应用中,由于

在使用电脑的时候很多时候都会遇到垃圾过多的情况,但是很多的用户还不知道电脑怎么格式化,没关系,下面就给你们大家带来了电脑格式化的教程一起看看吧。电脑怎么格式化:1、右击桌面的“此电脑”点击“管理”。2、在“计算机管理”中点击“存储”打开“磁盘管理”。3、选择自己要清理的硬盘右击选择“格式化”。4、勾选“执行快速格式化”并点击“确定”即可开始格式化。

现如今,无法开机等,卡顿,我们难免会遇到一些问题,比如系统崩溃、但在使用过程中、手机已成为我们生活中不可或缺的一部分。我们往往束手无策、而有时、对于这些问题的解决方法。帮助你解决手机故障,本文将为大家介绍一些手机格式化恢复的方法、让手机重新恢复正常运行。备份数据——保护重要信息安全通讯录等,如照片、联系人、以免在格式化过程中丢失、在进行手机格式化之前、首先要考虑的是备份手机上的重要数据和文件。确保数据的安全性、或者选择将文件传输至云存储服务中,可以通过连接电脑进行备份。使用系统自带恢复功能——简

格式化笔记本电脑会使其速度更快吗?如果您想格式化您的Windows笔记本电脑,但想知道它是否会使速度更快,本文将帮助您了解这个问题的正确答案。格式化笔记本电脑会使其速度更快吗?用户格式化Windows笔记本电脑的原因有很多。但最常见的原因是笔记本电脑的性能或速度缓慢。格式化笔记本电脑会彻底删除C盘或安装Windows操作系统的硬盘分区上存储的所有数据。因此,每个用户在采取这一步之前都会三思而后行,尤其是在笔记本电脑的性能方面。本文将帮助您了解格式化笔记本电脑是否会加快速度。格式化笔记本电脑有助于

使用fmt.Sprint函数将多个值格式化为字符串并返回,包括类型信息在Go语言中,fmt包提供了许多函数用于将数据格式化为字符串。其中,fmt.Sprint函数可以将多个值格式化为字符串并返回。与fmt.Sprintf函数不同的是,fmt.Sprint函数返回一个字符串,而不是一个格式化后的字符串。下面是一个使用fmt.Sprint函数的简单示例代码:pa
