通過正則格式化url查詢字串

2022-04-26 03:51:02 字數 1064 閱讀 1269

看到專案裡通過js陣列split方法格式化查詢字串的,突發奇想為什麼不能用正則呢,效能如何?於是便有了如下**:

/*** 格式化查詢字串(正則實現)

* @param url url位址

* @return 格式化的json物件

*/function

formaturl(url);

function

fn(str,pro,value)

url.replace(reg,fn);

return

data;

}/**

* 格式化查詢字串(陣列實現)

* @param url url位址

* @return 格式化的json物件

*/function

formaturl2(url),

items=url.length?url.split("&"):

,item=null

,i=0,len=items.length;

for(i=0;i)

return

args;

}var starttime=new

date();

for(var i=0;i<1000000;i++)

console.log('formaturl2',(new date()-starttime)); //

formaturl2 12138

starttime=new

date();

for(var i=0;i<1000000;i++)

console.log('formaturl',(new date()-starttime)); //

formaturl 12537

測試瀏覽器是chrme 25;正則實現的函式居然比陣列實現的函式要慢(淚奔....)。不過還好,在重複執行一百萬次的情況下只慢0.4秒。。。

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

格式化字串

通常在使用字串的時候,會對字串進行格式化,然後輸出或呼叫 一般我們使用替換標記對字串進行格式化 string str1 string.format add is 1,2,3 而且在c 中的替換標記可以以任意順序和次數出現在格式化字串中,但替換值是按順序排的,而且替換標記不能超出索引範圍 string...

字串格式化

例如 string s hello map.put target world string res format s,map 有什麼用呢?比如在some.properties中配置模板字串,但是如果用 這種方式,在配置了spring讀取properties注入變數的時候,這個變數就找不到會報錯。這個...