helping-js
Version:
helping-js: zero-dependency JavaScript utilities — type guards, 50+ regex patterns, validate(), TypeScript .d.ts, v3 helpers (string, array, object, async, date, URL, tree, DOM). Official docs: https://helping-js.netlify.app
53 lines (51 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.camelCase = camelCase;
exports.camelToWords = camelToWords;
exports.kebabCase = kebabCase;
exports.randString = randString;
exports.reverseString = reverseString;
exports.snakeCase = snakeCase;
exports.studlyCase = studlyCase;
exports.titleCase = titleCase;
var _number = require("./number");
/**
* String case and random helpers (ported from helper-js).
*/
function studlyCase(str) {
var s = String(str);
return s && s[0].toUpperCase() + s.slice(1);
}
function kebabCase(str) {
return String(str).replace(/([a-z])([A-Z])/g, '$1-$2').replace(/[\s_]+/g, '-').toLowerCase().replace(/^-+|-+$/g, '');
}
function snakeCase(str) {
return String(str).replace(/([a-z])([A-Z])/g, '$1_$2').replace(/[\s-]+/g, '_').toLowerCase();
}
function camelCase(str) {
return String(str).replace(/(?:^\w|[A-Z]|\b\w)/g, function (letter, index) {
return index === 0 ? letter.toLowerCase() : letter.toUpperCase();
}).replace(/\s+/g, '');
}
function camelToWords(str) {
return String(str).replace(/([A-Z])/g, ' $1').trim();
}
function titleCase(str) {
return String(str).replace(/\w\S*/g, function (txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
var RAND_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
function randString(length) {
var r = '';
var max = RAND_CHARS.length - 1;
for (var i = 0; i < length; i += 1) {
r += RAND_CHARS[(0, _number.randInt)(0, max)];
}
return r;
}
function reverseString(str) {
return String(str).split('').reverse().join('');
}