@c_s_v_s_subrahmanyam/string-utils
Version:
A comprehensive utility library for advanced string operations.
55 lines (38 loc) • 1.69 kB
JavaScript
// String transformations
module.exports = {
toUpperCase: (str) => str.toUpperCase(),
toLowerCase: (str) => str.toLowerCase(),
reverse: (str) => str.split('').reverse().join(''),
concatenate: (...args) => args.join(''),
replace: (str, search, replace) => str.split(search).join(replace),
trim: (str) => str.trim(),
padStart: (str, length, char = ' ') => str.padStart(length, char),
padEnd: (str, length, char = ' ') => str.padEnd(length, char),
caseConversion: (str, targetCase) => {
if (targetCase === 'camel') {
return str
.toLowerCase()
.replace(/[^a-zA-Z0-9]+(.)/g, (_, char) => char.toUpperCase());
}
if (targetCase === 'snake') return str.replace(/\s+/g, '_').toLowerCase();
if (targetCase === 'kebab') return str.replace(/\s+/g, '-').toLowerCase();
return str;
},
};
module.exports = {
...module.exports,
// Encoding and Decoding
encodeBase64: (str) => Buffer.from(str).toString('base64'),
decodeBase64: (str) => Buffer.from(str, 'base64').toString('utf-8'),
encodeURI: (str) => encodeURIComponent(str),
decodeURI: (str) => decodeURIComponent(str),
// Padding
leftPad: (str, length, char = ' ') => str.padStart(length, char),
rightPad: (str, length, char = ' ') => str.padEnd(length, char),
centerPad: (str, length, char = ' ') => {
const totalPadding = length - str.length;
const left = Math.floor(totalPadding / 2);
const right = totalPadding - left;
return char.repeat(left) + str + char.repeat(right);
},
};