Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

40,026 questions

51,982 answers

573 users

How to convert a string to PascalCase using RegEx in JavaScript

3 Answers

0 votes
function getPascalCase(input) {
    if (!input.includes(" ")) {
        input = input.replace(/(?<=[a-z])(?=[A-Z])/g, " ");
    }

    // Replace non-breaking spaces with regular spaces
    input = input.replace(/\u00A0/g, " ");

    const words = input.toLowerCase().split(/[\s_]+/);
    let result = "";

    for (let word of words) {
        if (word.length > 0) {
            result += word[0].toUpperCase() + word.slice(1);
        }
    }

    return result;
}

console.log(getPascalCase("get file content"));
console.log(getPascalCase("get_file_content"));
console.log(getPascalCase("get______file___content"));
console.log(getPascalCase("get______file____\u00A0 content")); // Non-breaking space
console.log(getPascalCase("GET FILE CONTENT"));
console.log(getPascalCase("get\u00A0 \u00A0 file\u00A0 \u00A0 \u00A0 content")); // Non-breaking spaces
console.log(getPascalCase("getFileContent"));
console.log(getPascalCase("  get file content")); 
console.log(getPascalCase("get file content  ")); 


   
/*
run:
   
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
  
*/

 



answered Feb 23, 2025 by avibootz
0 votes
function getPascalCase(input) {
    if (!input.includes(" ")) {
        input = input.replace(/(?<=[a-z])(?=[A-Z])/g, " ");
    }

    const words = input.toLowerCase().split(/[\s_]+/);
    let result = "";

    for (let word of words) {
        if (word.length > 0) {
            result += word[0].toUpperCase() + word.slice(1);
        }
    }

    return result;
}

console.log(getPascalCase("get file content"));
console.log(getPascalCase("get_file_content"));
console.log(getPascalCase("get______file___content"));
console.log(getPascalCase("get______file____  content"));
console.log(getPascalCase("GET FILE CONTENT"));
console.log(getPascalCase("get    file      content"));
console.log(getPascalCase("getFileContent"));


   
/*
run:
   
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
  
*/


 



answered Feb 23, 2025 by avibootz
0 votes
function toPascalCase(input) {
    if (!input) {
        return ""; // Handle empty input
    }

    // 1. Handle camelCase by inserting spaces
    input = input.replace(/([a-z])([A-Z])/g, '$1 $2');

    // 2. Replace underscores and hyphens with spaces
    input = input.replace(/[-_]+/g, ' ');

    // 3. Trim leading/trailing spaces and convert to lowercase
    input = input.trim().toLowerCase();

    // 4. Split into words
    const words = input.split(/\s+/);

    // 5. Capitalize the first letter of each word
    const pascalCase = words
        .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
        .join('');

    return pascalCase;
}


console.log(toPascalCase("get file content"));    
console.log(toPascalCase("get_file_content"));    
console.log(toPascalCase("get-file-content"));    
console.log(toPascalCase("getFileContent"));      
console.log(toPascalCase("get  file  content"));   
console.log(toPascalCase("  get  file  content  ")); 
console.log(toPascalCase("___get___file___content___")); 



   
/*
run:
   
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
GetFileContent
  
*/

 



answered Feb 23, 2025 by avibootz

Related questions

1 answer 87 views
2 answers 100 views
1 answer 82 views
1 answer 90 views
1 answer 87 views
1 answer 79 views
...