@polyv/utils
Version:
Utility functions of Polyv frontend development.
1 lines • 2.94 kB
JavaScript
;function strLen(n,e){var r,t;"number"==typeof e?e={enLen:1,nonEnLen:e}:((e=e||{}).enLen=null!==(r=e.enLen)&&void 0!==r?r:1,e.nonEnLen=null!==(t=e.nonEnLen)&&void 0!==t?t:2);for(var s=0,i=n.length-1;i>=0;i--)s+=n.charCodeAt(i)>255?e.nonEnLen||0:e.enLen||0;return s}function cutStr(n,e,r){(r=r||{}).enLen=Number(r.enLen)||1,r.nonEnLen=Number(r.nonEnLen)||2,r.ellipsis=r.ellipsis||"...";var t=strLen(n=String(n),r);if(t<=e)return n;e-=strLen(r.ellipsis,r);for(var s="",i=-1;e>0&&++i<t;)(e-=n.charCodeAt(i)>255?r.nonEnLen:r.enLen)>=0&&(s+=n.charAt(i));return s+=r.ellipsis}Object.defineProperty(exports,"__esModule",{value:!0}),exports.strLen=strLen,exports.cutStr=cutStr,exports.escapeHTML=escapeHTML,exports.unescapeHTML=unescapeHTML,exports.removeTags=removeTags,exports.nl2br=nl2br,exports.randomStr=randomStr,exports.uuidV4=uuidV4,exports.compareVersions=compareVersions,exports.maskChars=maskChars;var htmlChars=['"',"'","&","<",">"," "],htmlEntities=[""","'","&","<",">"," "],charsToEntities=Object.create(null),entitiesToChars=Object.create(null);htmlChars.forEach((function(n,e){charsToEntities[n]=htmlEntities[e],entitiesToChars[htmlEntities[e]]=n}));var reHTMLChars=new RegExp("["+htmlChars.join("")+"]","g"),reHTMLEntities=new RegExp("("+htmlEntities.join("|")+")","g");function escapeHTML(n){return null==n?n:String(n).replace(reHTMLChars,(function(n){return charsToEntities[n]}))}function unescapeHTML(n){return null==n?n:String(n).replace(reHTMLEntities,(function(n){return entitiesToChars[n]}))}function removeTags(n){return null==n?"":String(n).replace(/<.+?>/g,"")}function nl2br(n){return null==n?n:String(n).replace(/\r?\n/g,"<br />")}function randomStr(n,e){if(!(n|=0)||n<0)throw new Error('"length" must be a number greater than 0');var r="";do{r+=Math.random().toString(36).substr(2)}while(r.length<n);return r=r.substr(0,n),null!=e&&(r=e+r),r}function uuidV4(){var n=Date.now();return"undefined"!=typeof performance&&"function"==typeof performance.now&&(n+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var r=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"===e?r:3&r|8).toString(16)}))}function compareVersions(n,e){if(!n||!e)throw new Error("Please specify both verA and verB");for(var r=/(\.0+)+$/,t=String(n).replace(r,"").split("."),s=String(e).replace(r,"").split("."),i=Math.min(t.length,s.length),o=0;o<i;o++){var a=parseInt(t[o])-parseInt(s[o]);if(a)return a}return t.length-s.length}function maskChars(n,e){var r,t,s;e=e||{};var i=n.length,o=null!==(r=e.start)&&void 0!==r?r:0,a=null!==(t=e.end)&&void 0!==t?t:i-1,u=null!==(s=e.maskChar)&&void 0!==s?s:"*";if(o>=0&&a>=0&&o<=a&&a<i){var l=n.substring(0,o);return l+=new Array(a-o+2).join(u),a<i-1&&(l+=n.substring(a+1)),l}if(o>=0)return o>=i?n:n.substring(0,o)+new Array(i-o+1).join(u);if(a>=0){l=new Array(Math.min(a,i)+2).join(u);return a<i-1&&(l+=n.substring(a+1)),l}return n}