micro-format
Version:
Format string
1 lines • 8.8 kB
JavaScript
!function(e,t){"use strict";"function"==typeof define&&void 0!==define.amd?define(function(){return t}):"undefined"!=typeof exports&&e.exports!==exports?module.exports=t:e.format=t}(this,function(){var i=i||{};return function(){"use strict";var e,t=function(n){return{with:function(e){var t={};for(var r in n)n.hasOwnProperty(r)&&(t[r]=void 0!==e&&void 0!==e[r]?e[r]:n[r]);return t}}},p=function(e,t){var i={},o=void 0===t?"":e+".",r=void 0===t?e:t,a=p,n=typeof{},c=function(e,t){typeof t[e]===n?function(e,t){var r=a(e,t[e]);for(var n in r)r.hasOwnProperty(n)&&(i[o+n]=r[n])}(e,t):i[o+e]=t[e]};for(var u in r)r.hasOwnProperty(u)&&c(u,r);return i},r=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},c=function(e){return t({name:void 0,args:void 0,condition:void 0}).with(e)},f=function(e){return t({key:"",value:"",expression:""}).with(e)},d=function(e){return t({key:void 0,filterString:void 0,value:void 0}).with(e)},n={charAt:function(e,t){return e.charAt(t)},charCodeAt:function(e,t){return e.charCodeAt(t)},concat:function(e){var t=Array.prototype.slice.call(arguments).slice(0);return e.concat.apply(t)},slice:function(e,t,r){return e.slice(t,r)},split:function(e,t,r){return e.split(t,r)},substr:function(e,t,r){return e.substr(t,r)},substring:function(e,t,r){return e.substring(t,r)},toLocaleLowerCase:function(e){return e.toLocaleLowerCase()},toLocaleUpperCase:function(e){return e.toLocaleUpperCase()},toLowerCase:function(e){return e.toLowerCase()},toUpperCase:function(e){return e.toUpperCase()},trim:function(e,t){t=void 0===t||""===t?"\\s":t.replace(/[\[\](){}?*+\^$\\.|\-]/g,"\\$&");var r=new RegExp("^["+t+"]+|["+t+"]+$","g");return e.replace(r,"")},leftTrim:function(e,t){t=void 0===t||""===t?"\\s":t.replace(/[\[\](){}?*+\^$\\.|\-]/g,"\\$&");var r=new RegExp("^["+t+"]+");return e.replace(new RegExp(r),"")},rightTrim:function(e,t){t=void 0===t||""===t?"\\s":t.replace(/[\[\](){}?*+\^$\\.|\-]/g,"\\$&");var r=new RegExp("["+t+"]+$");return e.replace(new RegExp(r),"")},pad:function(e,t,r){return r=r||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(r)+e},toLetterCase:function(e,t){t=t||"";var r=e;if(0===e.length)return r;switch(t=t.replace(/-|_| |\./g,"").toLowerCase()){case"sentence":r=e.charAt(0).toUpperCase()+e.slice(1);break;case"title":case"headline":case"capital":r=e.split(" ").filter(function(e){return""!==e.trim()}).map(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}).join(" ");break;case"allcaps":r=e.toUpperCase();break;case"lower":r=e.toLowerCase();break;case"camel":case"lowercamel":r=(r=e.split(" ").filter(function(e){return""!==e.trim()}).map(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}).join("")).charAt(0).toLowerCase()+r.slice(1);break;case"pascal":case"uppercamel":case"bumpy":r=e.split(" ").filter(function(e){return""!==e.trim()}).map(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}).join("");break;case"snake":r=e.toLowerCase().split(" ").filter(function(e){return""!==e.trim()}).join("_");break;case"screamingsnake":r=e.toUpperCase().split(" ").filter(function(e){return""!==e.trim()}).join("_");break;case"kebab":case"spinal":r=e.toLowerCase().split(" ").filter(function(e){return""!==e.trim()}).join("-");break;case"train":r=e.toUpperCase().split(" ").filter(function(e){return""!==e.trim()}).join("-");break;case"studlycaps":r=e.split("").filter(function(e){return""!==e.trim()}).map(function(e){return Math.floor(10*Math.random())%2?e.toUpperCase():e.toLowerCase()}).join("")}return r},prefix:function(e,t){return t.concat(e)},suffix:function(e,t){return e.concat(t)},surround:function(e,t){return t.concat(e).concat(t)},commaCurrency:function(e){if(null==e)return"";if(e instanceof String&&(e=e.valueOf()),typeof e==typeof{})return"";var t=e.toString().split(".");return 0===t.length?"":(4<=t[0].length&&(t[0]=t[0].replace(/(\d)(?=(\d{3})+$)/g,"$1,")),t[1]&&3<=t[1].length&&(t[1]=t[1].replace(/(\d{3})/g,"$1 ")),t.join("."))},unCommaCurrency:function(e){return e.replace(/,| /g,"")},escape:function(e){if(void 0===i||void 0===i.createElement||void 0===i.createTextNode){var t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>'"]/g,function(e){return t[e]})}var r=i.createElement("span");return r.appendChild(i.createTextNode(e)),r.innerHTML},encodeURI:function(e){return encodeURI(e)},decodeURI:function(e){return decodeURI(e)},encodeURIComponent:function(e){return encodeURIComponent(e)},decodeURIComponent:function(e){return decodeURIComponent(e)},encodeSpecialChar:function(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,function(e){return t[e]})},decodeSpecialChar:function(e){var t={"&":"&","<":"<",">":">",""":'"',"'":"'"};return e.replace(/(&|<|>|"|')/g,function(e){return t[e]})},encodeEntityChar:function(e){var t=i.createElement("textarea");return t.innerHTML=e,t.innerHTML},decodeEntityChar:function(e){var t=i.createElement("textarea");return t.innerHTML=e,t.value},echo:function(e,t){return t},noScientific:function(e){var t=(e+"").split(/[eE]/);if(1===t.length)return t[0];var r="",n=e<0?"-":"",i=t[0].replace(".",""),o=parseInt(t[1])+1;if(o<0){for(r=n+"0.";o++;)r+="0";return r+i.replace(/^\-/,"")}for(o-=i.length;o--;)r+="0";return i+r}},v=n,g=!1,m="{{",h="}}";return(e=function(e,t){var u=e.toString(),n=function(e){var t,r,n,i,o,a,c,u;switch((t=e.split(":"),r=t[0].split(","),n=r[0].trim(),i=1<r.length?r[1]:"0",o=(1<t.length?t[1]:"").split(";"),a=o[0].trim(),c=1<o.length?o[1].trim():"",u=2<o.length?o[2].trim():"",{key:n,pad:isNaN(parseInt(i))?0:parseInt(i),format:{positive:a,negative:c,zero:u}}).format.positive){case"c":case"d":case"e":case"f":case"g":case"n":case"r":case"x":case"":default:""}return[]},a=function(e){var t=e.split("/");if(2!==t.length)return e.toString();var r=t[0];switch(t[1].toLowerCase()){case"bool":case"boolean":r=Boolean(JSON.parse(r));break;case"int":case"integer":r=parseInt(r.replace(/,| /g,""));break;case"float":case"double":case"number":case"real":r=Number(r.replace(/,| /g,""));break;case"string":r=r.toString().trim();break;case"char":r=r.toString().trim()[0]||"";break;case"undefined":r=void 0;break;case"null":r=null;break;case"date":r=new Date(r);break;default:r=e.toString().trim()}return r},s=function(e){var t=e.filterString,r=e.key,o=[];return t.split("|").map(function(e){return e.trim()}).filter(function(e){var t,r,n,i=(t=e.split("?"),r=(1<t.length?t[1]:t[0]).split(" ").map(function(e){return e.trim()}).filter(function(e){return""!==e}),n=(void 0===r?[]:r.slice(1).join(" ").split(",")).map(a),new c({name:r[0],args:n,condition:1<t.length?t[0].trim().toLocaleLowerCase():void 0}));return!(""===i.name||!v.hasOwnProperty(i.name)||"function"!=typeof v[i.name])&&(o.push(i),!0)}),n(r).concat(o)},l=function(e,t){var r=e;return t.map(function(e){(function(e,t){if(void 0===t.condition)return!0;var r=parseFloat(e),n=t.condition,i=!1;if(isNaN(r)){var o=function(e){try{return JSON.parse(e)}catch(e){return null}};i=void 0===e&&"undefined"===n||void 0!==e&&"!undefined"===n||null===e&&"null"===n||null!==e&&"!null"===n||""===e.trim()&&"empty"===n||""!==e.trim()&&"!empty"===n||!0===o(e)&&"true"===n||!1===o(e)&&"false"===n}else i=0<r&&/^ *> *0 *$/.test(n)||r<0&&/^ *< *0 *$/.test(n)||0===r&&/^ *= *0 *$/.test(n)||"zero"===n;return i})(r,e)&&(r=v[e.name].apply(null,[r].concat(e.args)))}),r};return function(e){var t,r,n,i,o=[];for(var a in e)if(e.hasOwnProperty(a)&&null!=a&&void 0!==e[a]&&(void 0!==e[a]&&null!==e[a]||(e[a]=""),!new RegExp("{{|}}").test(e[a]))){var c=new f({key:g&&e instanceof Array?"\\["+a+"\\]":a,value:e[a].toString(),expression:(t=a,r=void 0,n=void 0,i="(?=[: \\|]? *[:| |\\|]?[^("+h+")]*) *[:| |\\|]?[^("+h+")]*",/^-?[\d]+(?:e-?\d+)?$/.test(t.toString())&&"+"!==t.toString()[0]&&"-"!==t.toString()[0]?(r=m+" *\\[",n="\\]"+i+h):(r=m+" *",n=i+h),g||(r=m+" *",n=i+h),r+t.toString().replace(/\./g,"\\.")+n)});g||(c.key=a),o.push(c)}return o}(2<arguments.length?Array.prototype.slice.call(arguments).slice(1):t instanceof Array&&g?t:p(t)).map(function(e,t){for(var r=new RegExp(e.expression),n=new RegExp(m+" *("+e.key+"[^|]*) *(.*)"+h);;){var i=r.exec(u);if(null===i)break;var o=n.exec(i[0]),a=null!==o&&3===o.length?s(new d({key:o[1],filterString:o[2],value:e.value})):[],c=l(e.value,a);u=u.replace(r,c)}}),u}).listFilters=function(){var e=[];for(var t in v)v.hasOwnProperty(t)&&"function"==typeof v[t]&&e.push(t);return e},e.addFilter=function(e,t){return"function"==typeof t&&(v[e]=t,!0)},e.removeFilter=function(e){return!(!v.hasOwnProperty(e)||"function"!=typeof v[e])&&!(v[e]=void 0)},e.resetFilters=function(){v=n},e.getUseExplicitArrays=function(){return g},e.setUseExplicitArrays=function(e){g=e},e.setOpener=function(e){m=r(e)},e.setCloser=function(e){h=r(e)},e.VERSION="0.2.3",e}()}());