UNPKG

txt

Version:

Utilities for working with text.

3 lines 2.89 kB
//! txt.js //! v1.0.0 !function(){var e={truncateChars:{append:"...",delimiter:" "},truncateItems:{append:"...",delimiter:" "}},r=function(e){return"string"==typeof e||e instanceof String},t=function(e){return("number"==typeof e||e instanceof Number)&&!isNaN(e)};txt={version:"1.0.0",eachMatch:function(e,t,n){if(!r(e)||!(t instanceof RegExp||r(t))||"function"!=typeof n)throw new TypeError("Invalid parameter");r(t)?t=new RegExp(this.escapeRegExp(t),"g"):t.global||(t=new RegExp(t.source,t.toString().replace(/^.*\//,"g")));var a=e.match(t),i=0;return e.replace(t,function(e){var p=n(e,{string:arguments[arguments.length-1],stringIndex:arguments[arguments.length-2],array:a,arrayIndex:i++,pattern:t});return r(p)?p:e})},eachDelimiter:function(e,t,n){if(!r(e)||!(t instanceof RegExp||r(t))||"function"!=typeof n)throw new TypeError("Invalid parameter");var a=[],i=e.split(t),p=0,o="";for(t instanceof RegExp&&(t.global||(t=new RegExp(t.source,t.toString().replace(/.*\//,"g"))),a=e.match(t)||a);p<i.length;){var l=n(i[p],{string:e,stringIndex:o.length,array:i,arrayIndex:p++,delimiter:t});o+=(r(l)?l:i[p-1])+(p<i.length?a.shift()||t:"")}return o},truncateChars:function(n,a,i){if(!r(n)||!t(a))throw new TypeError("Invalid parameter");if(0>a)throw new RangeError("Invalid number");if(a>=n.length)return n;i=i||{};var p=(r(i.append)?i.append:e.truncateChars.append).slice(0,a);return n=n.slice(0,a-p.length),n.slice(0,n.lastIndexOf(r(i.delimiter)?i.delimiter:e.truncateChars.delimiter)+1||n.length)+p},truncateItems:function(n,a,i){if(!r(n)||!t(a))throw new TypeError("Invalid parameter");if(0>a)throw new RangeError("Invalid number");i=i||{};var p=r(i.delimiter)?i.delimiter:e.truncateItems.delimiter;return n=n.split(p),(a<n.length?n.slice(0,a).concat(r(i.append)?i.append:e.truncateItems.append):n).join(p)},escapeHTML:function(e){if(r(e))return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");throw new TypeError("Invalid parameter")},unescapeHTML:function(e){if(r(e))return e.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&");throw new TypeError("Invalid parameter")},escapeRegExp:function(e){if(r(e))return e.replace(/[\^\$\(\)\[\]\{\}\*\+\?\|\.\-\/\\]/g,"\\$&");throw new TypeError("Invalid parameter")},unescapeRegExp:function(e){if(r(e))return e.replace(/\\([\^\$\(\)\[\]\{\}\*\+\?\|\.\-\/\\])/g,"$1");throw new TypeError("Invalid parameter")},pluralize:function(e,n){if(!t(e))throw new TypeError("Invalid parameter");return e=1==e?"singular":"plural",n&&r(n[e])?n[e]:""},capitalize:function(e){if(r(e))return(e[0]||"").toUpperCase()+e.slice(1);throw new TypeError("Invalid parameter")},defaults:function(t){if("object"==typeof t)for(var n in t){var a=t[n];if(e.hasOwnProperty(n)&&"object"==typeof a){var i=e[n];for(var p in a)i.hasOwnProperty(p)&&r(a[p])&&(i[p]=a[p])}}return e}},"undefined"!=typeof module&&module.exports&&(module.exports=txt)}();