UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

128 lines (126 loc) 2.69 kB
/** * 横线转驼峰命名,如果第一个字符是字母,则不处理。 * @param {string} str 输入字符串 * @param {boolean} handleSnake 是否处理下划线,默认不处理 * @returns {string} 处理后的字符串 * @example * * camelize('ab-cd-ef') * * // => abCdEf * */ function camelize(str, handleSnake) { if (str === void 0) { str = ''; } if (handleSnake === void 0) { handleSnake = false; } var camelizeRE = /-(\w)/g; var snakeRE = /_(\w)/g; var cb = function cb(str, re) { if (str === void 0) { str = ''; } return str.replace(re, function (_, c) { return c ? c.toUpperCase() : ''; }); }; if (!handleSnake) { return cb(str, camelizeRE); } return cb(cb(str, camelizeRE), snakeRE); } var toCamel = camelize; /** * 驼峰命名转横线命名:拆分字符串,使用 - 相连,并且转换为小写 * @param {string} str 输入字符串 * @returns {string} 处理后的字符串 * * @example * * hyphenate('abCd') * * // => ab-cd * */ function hyphenate(str) { var hyphenateRE = /\B([A-Z])/g; return str.replace(hyphenateRE, '-$1').toLowerCase(); } var toKebab = hyphenate; /** * 字符串首位大写 * @param {string} str 输入字符串 * @returns {string} 处理后的字符串 * * @example * * capitalize('abc') * * // => Abc */ function capitalize(str) { return str.charAt(0).toUpperCase() + str.slice(1); } /** * 将每个单词的首字母转换为大写 * @param {string} str 输入字符串 * @returns {string} 处理后的字符串 * * @example * * titleize('my name is yang') * * // My Name Is Yang * * titleize('foo-bar') * * // Foo-Bar */ function titleize(str) { if (typeof str !== 'string') { throw new TypeError('Expected a string'); } return str.toLowerCase().replace(/(?:^|\s|-)\S/g, function (x) { return x.toUpperCase(); }); } /** * 首字母小写 * @param {string} str 输入字符串 * @returns {string} 输出字符串 * @example * * lowerInitial('GroupId') * * // groupId */ function lowerInitial(str) { return str.replace(/^(\w)/, function (a, b) { return b === null || b === void 0 ? void 0 : b.toLowerCase(); }); } /** * 用大驼峰,即 PascalCase 格式,来格式化字符串 * @param str 字符串 * @returns PascalCase 的字符串 * * @example * ```ts * pascalCase('ab-cd') * // AbCd * * pascalCase('ab_cd') * // AbCd * ``` */ function pascalCase(str) { if (str === void 0) { str = ''; } return capitalize(camelize(str)); } var toPascal = hyphenate; export { camelize, capitalize, hyphenate, lowerInitial, pascalCase, titleize, toCamel, toKebab, toPascal };