
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@full-pack/string-pack
Advanced tools
A lightweight and versatile String Utility Package for Node.js & Browser.
A lightweight and versatile String Utility Package for Node.js & Browser.
npm install @full-pack/string-pack
const { ... } = require('@full-pack/string-pack');
import { ... } from '@full-pack/string-pack';
Adds padding to given string.
Pads the start of a string with a specified fill string a certain number of times.
// Basic Usage
padStart('hello', 'abc', 3) // abcabcabchello
// Limiting total length
padStart('hello', 'abc', 3, 8) // abchello
Pads the end of a string with a specified fill string a certain number of times.
// Basic Usage
padEnd('hello', 'abc', 3); // helloabcabcabc
// Limiting total length
padEnd('hello', 'abc', 3, 8); // helloabc
Pads a string with a specified fill string a certain number of times on both ends.
// Basic usage
padBidirectional('hello', '*', {repeatCount: 2}); // '**hello**'
// Limiting total length
padBidirectional('world', '-', {repeatCount: 3, maxLen: 10}); // '--world---'
// Controlling padding distribution
padBidirectional('example', '*', {repeatCount: 2, maxLen: 10, bias: PaddingBias.START});
// '**example*'
Merges an array of strings into a single string using a specified separator.
merge('-', 'apple', 'orange', 'banana'); // 'apple-orange-banana'
merge(true, 'apple', 'orange'); // 'apple orange'
merge(false, 'apple', 'orange', 'banana'); // 'appleorangebanana'
Performs a strict comparison between two strings.
compare("hello", "hello"); // true
compare("abc", "ABC"); // false
Performs a case-insensitive loose comparison between two strings.
looseCompare("hello", "HELLO"); // true
looseCompare('abc', '123'); // false
Capitalizes the first letter of a word in a string.
capitalizeInitial('hello'); // 'Hello'
capitalizeInitial(':> hello'); // ':> Hello'
Capitalizes the first letter of each word in a given string.
capitalizeWords('hello world'); // 'Hello World'
capitalizeWords('Sphinx of black quartz:-judge my vow'); // 'Sphinx Of Black Quartz:-Judge My Vow'
Converts a string to snake_case format.
snakeCase('hello WorLd'); // 'hello_world'
snakeCase('from-kebab-case'); // 'from_kebab_case'
snakeCase('snake Case With Numbers123', true); // 'snake_case_with_numbers_one_two_three'
Converts a string to kebab-case format.
kebabCase('h3llo WoRld'); // 'h3llo-world'
kebabCase('from_snake_case'); // 'from-snake-case'
kebabCase('kebab Case With Numbers123', true); // 'kebab-case-with-numbers-one-two-three'
Converts a string to camelCase format.
camelCase('hello WoRld'); // 'helloWorld'
camelCase('Test CaSe ExamplE'); // 'testCaseExample'
camelCase('camel Case With Numbers123'); // 'camelCaseWithNumbers'
Converts a string to PascalCase format.
pascalCase('hello WoRld'); // 'HelloWorld'
pascalCase('Test CaSe ExamplE'); // 'TestCaseExample'
pascalCase('pasCal Case With Numbers123'); // 'PascalCaseWithNumbers'
Checks if a string is in snake_case format.
// Valid
isSnakeCase('snake_case_example'); // true
isSnakeCase('hello_world'); // true
// Valid with alphanumeric flag
isSnakeCase('with_1234', true); // true
isSnakeCase('pi_3_14', true); // true
// Invalid
isSnakeCase('123at_start'); // false
isSnakeCase(' no_space_allowed'); // false
isSnakeCase('no_CAPS'); // false
Checks if a string is in kebab-case format.
// Valid
isKebabCase('kebab-case-example'); // true
isKebabCase('hello-world'); // true
// Valid with alphanumeric flag
isKebabCase('with-1234', true); // true
isKebabCase('pi-3-14', true); // true
// Invalid
isKebabCase('123at-start'); // false
isKebabCase(' no-space-allowed'); // false
isKebabCase('no-CAPS'); // false
Checks if a string is in camelCase format.
// Valid
isCamelCase('camelCaseExample'); // true
isCamelCase('helloWorld'); // true
// Invalid
isCamelCase('CAMEL'); // false
isCamelCase(' noSpaceAllowed'); // false
isCamelCase('withThe1234'); // false
Checks if a string is in PascalCase format.
// Valid
isPascalCase('PascalCaseExample'); // true
isPascalCase('HelloWorld'); // true
// Invalid
isPascalCase('PASCAL'); // false
isPascalCase(' NoSpaceAllowed');; // false
isPascalCase('WithThe1234'); // false
Compares two strings or regions for equality.
// Matching identical strings
regionMatch('hello', 'hello'); // true
// Matching identical regions in strings
const str1 = { str: 'hello world', start: 0, end: 5 };
const str2 = { str: 'hello there', start: 0, end: 5 };
regionMatch(str1, str2); // true
// OR
regionMatch('hello world', 'hello there', 0, 5) // true
// Not matching regions
regionMatch('hello world', 'hello there', 6, 11); // false
Performs a loose comparison of two strings or regions for equality.
// Loose matching identical strings
looseRegionMatch('hello', 'HeLLo'); // true
// Loose matching identical regions in strings
const str1 = { str: ' hellO world', start: 1, end: 6 };
const str2 = { str: 'HelLo there', start: 0, end: 5 };
looseRegionMatch(str1, str2); // true
Checks if a string contains only alphabetic characters (A-Z, a-z).
isAlpha("HelloWorld"); // true
isAlpha("Hello123"); // false
Checks if a string contains only alphanumeric characters (A-Z, a-z, 0-9).
isAlphaNumeric("Hello01"); // true
isAlphaNumeric("1234567890"); // false
Reverses the sequence of characters in given string.
reverse('bad') // 'dab'
Full documentation here
npm run build
The MIT License. Full License is here
FAQs
A lightweight and versatile String Utility Package for Node.js & Browser.
We found that @full-pack/string-pack demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.