国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

通過正則格式化url查詢字符串實現(xiàn)代碼

2024-05-06 14:20:12
字體:
供稿:網(wǎng)友
看到項目里通過js數(shù)組split方法格式化查詢字符串的,突發(fā)奇想為什么不能用正則呢,性能如何?于是便有了如下代碼:
代碼如下:
var url='www.baidu.com?a=123&b=456&c=789&e=dfsdfsdfsdfsdfsdfsdf&f=46545454545454785&g=e23232dsfvdfvdf';
/**
* 格式化查詢字符串(正則實現(xiàn))
* @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;
}
/**
* 格式化查詢字符串(數(shù)組實現(xiàn))
* @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<items.length;i++){
item=items[i].split("=");
args[decodeURIComponent(item[0])]=decodeURIComponent(item[1]);
}
return args;
}
var startTime=new Date();
for(var i=0;i<1000000;i++){
formatUrl2(url);
}
console.log('formatUrl2',(new Date()-startTime)); //formatUrl2 12138
startTime=new Date();
for(var i=0;i<1000000;i++){
formatUrl(url);
}
console.log('formatUrl',(new Date()-startTime)); //formatUrl 12537

測試瀏覽器是chrme 25;正則實現(xiàn)的函數(shù)居然比數(shù)組實現(xiàn)的函數(shù)要慢(淚奔....)。不過還好,在重復(fù)執(zhí)行一百萬次的情況下只慢0.4秒
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 绵竹市| 通州市| 防城港市| 平湖市| 西充县| 海宁市| 阿拉尔市| 雷州市| 武清区| 洪江市| 德清县| 河池市| 鲁甸县| 鞍山市| 长顺县| 玉溪市| 庐江县| 文成县| 江都市| 洮南市| 同心县| 谷城县| 宁城县| 拉萨市| 鄂托克旗| 武功县| 黑河市| 岑巩县| 平顺县| 土默特左旗| 罗定市| 甘洛县| 康乐县| 凤凰县| 商河县| 天祝| 鄢陵县| 商丘市| 绥宁县| 贺兰县| 凤阳县|