āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/brennenrocks/utilcn/strings/to-pascal-case ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
import { toPascalCase } from '@/lib/to-pascal-case';
const result = toPascalCase("hello world-example");
console.log(result); // "HelloWorldExample"
| Parameter | Type | Description |
|-----------|----------|------------------|
| str | string | The input string |
string - The PascalCased string.
toPascalCase("hello world-example"); // "HelloWorldExample"
toPascalCase("XMLHttpRequest"); // "XmlHttpRequest"
toPascalCase("user_name"); // "UserName"
toPascalCase("api-response"); // "ApiResponse"
toPascalCase("HTML parser"); // "HtmlParser"
export function toPascalCase(str: string): string {
return (
str
// Split acronym groups into proper boundaries
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
// Split between lowercase/digit and uppercase
.replace(/([a-z\d])([A-Z])/g, '$1 $2')
// Normalize spaces/underscores/dashes
.replace(/[-_\s]+/g, ' ')
// Lowercase all to normalize
.toLowerCase()
// Capitalize every word
.replace(/\b\w/g, (c) => c.toUpperCase())
// Remove spaces
.replace(/\s+/g, '')
);
}
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā