varReplace : function (str,data) { var pattern = / \ [(.) +? \] / gm; var match = str.match (pattern); if(match){ for(var i=0; i<match.length; i++){ var key = match[i].replace(/([\[\]])*/gm, ''); if(undefined != data[key]){ str = str.replace(match[i],data[key]); } } } return str; },
example
var str = "/admin/department/edit/id/[id]/name/[name].html#treeEdit" var data = { 'id' : 123, "name" : 1233 }; var url = varReplace(url,data); console.log(url); /// output result admin/department/edit/id/123/name/1233.html#treeEdit
if
var url="/admin/department/edit/id/%5Bid%5D/name/%5Bname%5D.html#treeEdit";
url escaped can be escaped back via decodeURI ( url ) in the replacement