← Back to utilities
string

pascal-case

Converts a string to PascalCase. Transforms a string by removing spaces, underscores, and hyphens, then capitalizing the first letter of each word including the first one. Commonly used for class names, interface names, type names, and component names.

Installation

npx fragmen add string/pascal-case

Source Code

/**
 * Converts a string to PascalCase.
 *
 * Transforms a string by removing spaces, underscores, and hyphens, then capitalizing
 * the first letter of each word including the first one. Commonly used for class names,
 * interface names, type names, and component names.
 *
 * @tags pure, string-manipulation, formatting
 * @param {string} str The string to convert
 * @returns {string} The PascalCase version of the string
 *
 * @example
 * ```typescript
 * pascalCase('Hello World'); // 'HelloWorld'
 * pascalCase('first_name'); // 'FirstName'
 * pascalCase('kebab-case-string'); // 'KebabCaseString'
 * pascalCase('camelCase'); // 'CamelCase'
 * pascalCase('  multiple   spaces  '); // 'MultipleSpaces'
 * pascalCase('AlreadyPascalCase'); // 'AlreadyPascalCase'
 * pascalCase(''); // ''
 * ```
 */
export function pascalCase(str: string): string {
  if (typeof str !== 'string') {
    return '';
  }

  return (
    str
      .trim()
      // Split on spaces, underscores, hyphens, and camelCase boundaries
      .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2') // XMLHttp -> XML Http
      .replace(/([a-z])([A-Z])/g, '$1 $2') // Insert space before uppercase in camelCase
      .replace(/([0-9])([A-Z])/g, '$1 $2') // version2Update -> version2 Update
      .split(/[\s_-]+/)
      .filter(word => word.length > 0)
      .map(word => {
        const lowerWord = word.toLowerCase();
        // Capitalize first letter of every word
        return lowerWord.charAt(0).toUpperCase() + lowerWord.slice(1);
      })
      .join('')
  );
}

Examples

pascalCase('Hello World'); // 'HelloWorld'
pascalCase('first_name'); // 'FirstName'
pascalCase('kebab-case-string'); // 'KebabCaseString'
pascalCase('camelCase'); // 'CamelCase'
pascalCase('  multiple   spaces  '); // 'MultipleSpaces'
pascalCase('AlreadyPascalCase'); // 'AlreadyPascalCase'
pascalCase(''); // ''

Related Utilities

camel-case

string

Converts a string to camelCase. Transforms a string by removing spaces, underscores, and hyphens, then capitalizing the first letter of each word except the first one. Commonly used for JavaScript variable names, object properties, and function names.

#pure#string-manipulation#formatting

capitalize

string

Capitalizes the first letter of a string. Converts the first character to uppercase while leaving the rest unchanged. Safely handles edge cases like empty strings and non-string inputs.

#pure#string-manipulation#formatting

kebab-case

string

Converts a string to kebab-case. Transforms a string by converting it to lowercase and replacing spaces, underscores, and camelCase boundaries with hyphens. Useful for creating URL slugs, CSS class names, and file names.

#pure#string-manipulation#formatting

pad-end

string

Pads the end of a string with another string until it reaches the target length. If padString is '', the original string is returned (mirrors native behavior).

#pure#string-manipulation#formatting

pad-start

string

Pads the start of a string with another string until it reaches the target length. If padString is '', the original string is returned (mirrors native behavior).

#pure#string-manipulation#formatting

snake-case

string

Converts a string to snake_case. Transforms a string by converting it to lowercase and replacing spaces, hyphens, and camelCase boundaries with underscores. Commonly used for database column names, Python variables, and configuration keys.

#pure#string-manipulation#formatting

Quick Actions

Estimated size:1.50 KB

Tags

Parameters

strstring

The string to convert

Returns

string

The PascalCase version of the string