Aprimorando e Usando a Função Pascal Case
Agora que temos uma função toPascalCase funcional, vamos aprimorá-la com recursos adicionais e aprender como usá-la de forma prática.
-
Abra seu arquivo pascalCase.js no WebIDE.
-
Vamos modificar a função para lidar melhor com casos extremos. Substitua o código existente por:
/**
* Converte uma string para Pascal case.
* @param {string} str - A string de entrada para converter.
* @returns {string} A string em Pascal case.
*/
function toPascalCase(str) {
// Lidar com casos extremos
if (!str) return "";
if (typeof str !== "string") return "";
// Use regex para encontrar palavras, independentemente do delimitador
const words = str.match(
/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
);
// Se nenhuma palavra for encontrada, retorne uma string vazia
if (!words) {
return "";
}
// Capitalize cada palavra e junte-as
return words
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
.join("");
}
// Casos de teste, incluindo casos extremos
console.log(toPascalCase("hello world")); // "HelloWorld"
console.log(toPascalCase("")); // ""
console.log(toPascalCase(null)); // ""
console.log(toPascalCase("123_abc")); // "123Abc"
console.log(toPascalCase("UPPER_CASE_EXAMPLE")); // "UpperCaseExample"
console.log(
toPascalCase("some-mixed_string with spaces_underscores-and-hyphens")
); // "SomeMixedStringWithSpacesUnderscoresAndHyphens"
// Criar um módulo utilitário reutilizável
module.exports = { toPascalCase };
-
Salve o arquivo pressionando Ctrl+S.
-
Agora, vamos criar um novo arquivo para demonstrar como usar nossa função como um utilitário em outro arquivo. Crie um novo arquivo clicando em "File" > "New File" no menu superior.
-
Salve este arquivo como useCase.js no diretório /home/labex/project.
-
Adicione o seguinte código a useCase.js:
// Importar a função toPascalCase do nosso arquivo utilitário
const { toPascalCase } = require("./pascalCase");
// Exemplo: Convertendo nomes de campos de banco de dados para nomes de variáveis JavaScript
const databaseFields = [
"user_id",
"first_name",
"last_name",
"email_address",
"date_of_birth"
];
// Converter cada nome de campo para Pascal case
const javaScriptVariables = databaseFields.map((field) => toPascalCase(field));
// Exibir os resultados
console.log("Database Fields:");
console.log(databaseFields);
console.log("\nJavaScript Variables (Pascal Case):");
console.log(javaScriptVariables);
// Exemplo: Criando um nome de classe a partir de uma descrição
const description = "user account manager";
const className = toPascalCase(description);
console.log(`\nClass name created from "${description}": ${className}`);
-
Salve o arquivo pressionando Ctrl+S.
-
Execute o novo arquivo usando Node.js. No Terminal, digite:
node useCase.js
Você deve ver uma saída semelhante a:
Database Fields:
[ 'user_id', 'first_name', 'last_name', 'email_address', 'date_of_birth' ]
JavaScript Variables (Pascal Case):
[ 'UserId', 'FirstName', 'LastName', 'EmailAddress', 'DateOfBirth' ]
Class name created from "user account manager": UserAccountManager
Isso demonstra um uso prático da função toPascalCase para converter nomes de campos de banco de dados em nomes de variáveis JavaScript e criar nomes de classes a partir de descrições.
Observe que também adicionamos:
- Tratamento de erros para entradas nulas, indefinidas ou não strings
- Exportações de módulo para que a função possa ser importada em outros arquivos
- Um exemplo do mundo real de como usar a função
Essas melhorias tornam nossa função toPascalCase mais robusta e utilizável em aplicações JavaScript reais.