-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstring.min.js
More file actions
1 lines (1 loc) · 2.44 KB
/
string.min.js
File metadata and controls
1 lines (1 loc) · 2.44 KB
1
"use strict";angular.module("jackrabbitsgroup.angular-string",[]).factory("jrgString",[function(){var privateObj={parseUrl:function(params){var xx,ret={page:"",queryParams:"",hashParams:""},defaults={rootPath:""};for(xx in defaults)void 0===params[xx]&&(params[xx]=defaults[xx]);var appPath=params.rootPath,curUrl=params.url,posSlashes=curUrl.indexOf("://");posSlashes>-1&&(curUrl=curUrl.slice(posSlashes+3,curUrl.length));var pos1=curUrl.indexOf(appPath),curPage=curUrl.slice(pos1+appPath.length,curUrl.length),posHash=curPage.indexOf("#/");posHash>-1&&(curPage=curPage.slice(posHash+2,curPage.length)),posHash=curPage.indexOf("#");var hashParams="";posHash>-1&&(hashParams=curPage.slice(posHash+1,curPage.length),curPage=curPage.slice(0,posHash));var posQuery=curPage.indexOf("?"),queryParams="";return posQuery>-1&&(queryParams=curPage.slice(posQuery+1,curPage.length),curPage=curPage.slice(0,posQuery)),ret.page=curPage,ret.queryParams=queryParams,ret.queryParamsObj=this.parseUrlParams(queryParams,{}),ret.hashParams=hashParams,ret.hashParamsObj=this.parseUrlParams(hashParams,{}),ret},parseUrlParams:function(urlParams){var questionMark=urlParams.indexOf("?");questionMark>-1&&(urlParams=urlParams.slice(questionMark+1,urlParams.length));var hashTag=urlParams.indexOf("#");hashTag>-1&&(urlParams=urlParams.slice(hashTag+1,urlParams.length));var ii,subParts,urlParamsObj={},parts=urlParams.split("&");for(ii=0;ii<parts.length;ii++)subParts=parts[ii].split("="),urlParamsObj[subParts[0]]=subParts[1];return urlParamsObj},stripUrlParams:function(url,stripKeys,params){var ii,patt1,patt2,patt3,patt4,newUrl=url,host="",questionMark=newUrl.indexOf("?");for(questionMark>-1&&(host=newUrl.slice(0,questionMark),newUrl=newUrl.slice(questionMark+0,newUrl.length)),ii=0;ii<stripKeys.length;ii++)patt1=new RegExp("\\?"+stripKeys[ii]+"=.*&","i"),patt2=new RegExp("&"+stripKeys[ii]+"=.*&","i"),patt3=new RegExp("\\?"+stripKeys[ii]+"=.*","i"),patt4=new RegExp("&"+stripKeys[ii]+"=.*","i"),newUrl=newUrl.replace(patt1,"?").replace(patt2,"&").replace(patt3,"?").replace(patt4,"&");if(newUrl.length>0&&newUrl.indexOf("?")<0&&(newUrl="?"+newUrl.slice(1,newUrl.length)),newUrl.indexOf("?")<0)newUrl+="?";else{var lastChar=newUrl[newUrl.length-1];"&"!==lastChar&&"?"!==lastChar&&(newUrl+="&")}return void 0!==params.returnParamsOnly&¶ms.returnParamsOnly||(newUrl=host+newUrl),newUrl}};return{parseUrl:privateObj.parseUrl,parseUrlParams:privateObj.parseUrlParams,stripUrlParams:privateObj.stripUrlParams}}]);