對(duì)前端同學(xué)來說,經(jīng)常要碰到一種比較麻煩的情況,那就是url查詢字符串的解析問題。說起來也不難,就是比較麻煩。
具體來處理這種情況的時(shí)候,相信有一部分同學(xué)就是針對(duì)具體項(xiàng)目中的需要的字符去正則匹配一下,業(yè)務(wù)需求嘛,解決就算了。原來我也是這樣干的。不過最好還是抽一種方法出來,畢竟這種工具類的發(fā)放很多地方都會(huì)用到。當(dāng)然現(xiàn)在github上有很多大牛的作品可以借鑒。今天自己也來實(shí)現(xiàn)一下。
總體思路很簡(jiǎn)單,就是正則去匹配看是否有查詢字符串的出現(xiàn),不過為了功能豐富點(diǎn)也就是隨手加上了支持自定義字符串的解析(有點(diǎn)雞肋),可選返回的是數(shù)組或者對(duì)象。具體處理可以見代碼:
/** * @method queryString * @param getObj 結(jié)果為對(duì)象否則為數(shù)組 * @default false * @param str 需要解析的string * @default location.search * @return Object or Array * */function queryString(getObj,str){ var string = (str!== undefined) ? str : window.location.search; var result = string.match(new RegExp("[^\?\&]+=[^\?\&]+","g")); if(result == null){ result = ''; }else if(getObj){ var params = {}; for(var i = 0; i < result.length; i++){ var res = result[i].split('='); var key = res[0],