UNPKG

zen-utils

Version:

90 lines (85 loc) 1.96 kB
'use strict'; /* * 根据方向自动进行字符串补齐操作 * @param str * @param len * @param pad * @param dir * @returns {string} */ exports.pad = function (arg) { let { str = '', len = 0, pad = ' ', dir = 'right' } = arg; let padlen = 0; if (len > str.length) { switch (dir) { case 'left': str = pad.repeat(len - str.length) + str; break; case 'both': { const right = Math.ceil((padlen = len - str.length) / 2), left = padlen - right; str = pad.repeat(left) + str + pad.repeat(right); break; } case 'right': str = str + pad.repeat(len - str.length); break; default: return str; } } return str; }; /* * 截取字符 超过指定长度采用chr进行替换 * @param str * @param length * @param chr * @returns {string} */ /** * Created by liguoxin on 2017/3/6. * */ exports.truncate = function (str, length, chr = '…') { return str.length >= length ? str.substr(0, length - chr.length) + chr : str; }; /* * 匹配包含颜色的字符数量 * @param str * @returns {*} */ exports.strlen = function (str) { const code = /\u001b\[(?:\d*;){0,5}\d*m/g, stripped = ('' + str).replace(code, ''), split = stripped.split('\n'); return split.reduce((memo, s) => { return s.length > memo ? s.length : memo; }, 0); }; exports.startsWith = function (str, condition) { if (str == null) { return false; } return str.startsWith(condition); }; exports.endsWith = function (str, condition) { if (str == null) { return false; } return str.endsWith(condition); }; exports.containWith = function (str, condition) { if (str == null) { return false; } return str.indexOf(condition) !== -1; }; exports.isBlank = function (str) { return !str || !str.trim(); }; exports.isPositiveInteger = function (str) { return (/^\d+$/.test(str) ); };