Convertitore di maiuscole/minuscole: UPPER, lower, Title, snake_case online
Incolla il testo, clicca uno stile, copia il risultato. Nove stili, supporto Unicode completo, niente esce dal tuo browser.
Che cos'è il convertitore di maiuscole/minuscole?
Uno strumento gratuito che, nel browser, converte un blocco di testo tra nove stili: UPPERCASE, lowercase, Title Case, Sentence case, snake_case, camelCase, PascalCase, kebab-case e CONSTANT_CASE. Incolla una volta, clicca lo stile che vuoi, copia il risultato. Niente lascia la tua macchina.
Pensalo come le funzioni UPPER, LOWER e PROPER di Excel, più il menu "Cambia maiuscole/minuscole" di Microsoft Word, più gli stili da programmatore per cui useresti lodash o il pacchetto npm change-case. Una sola interfaccia, senza installazione.
Sotto il cofano le conversioni usano String.prototype.toLowerCase, toUpperCase e toLocaleLowerCase / toLocaleUpperCase per la piegatura locale-aware (Turkish I col puntino, ß tedesca, sigma finale greca). Gli stili da identificatore separano sui confini di parola (_, -, spazi e transizioni minuscolo-maiuscolo) prima di rimettere la maiuscola/minuscola di ogni parola.
Come funzionano davvero le conversioni
Due dei nove stili sono pure trasformazioni di lettere. UPPERCASE chiama String.prototype.toLocaleUpperCase con la locale del tuo browser, lowercase chiama toLocaleLowerCase. Le varianti locale-aware contano: il riferimento di MDN su toLocaleUpperCase documenta il caso turco: in tr-TR, la i minuscola diventa İ (con puntino) e la I maiuscola diventa ı (senza puntino). Le versioni non-locale sbagliano sul testo turco.
Title Case e Sentence case fanno più lavoro. Sentence case mette tutto in minuscolo e poi capitalizza la prima lettera di ogni frase (separazione su ., !, ?). Title Case capitalizza la prima lettera di ogni parola tranne articoli brevi, preposizioni e congiunzioni come a, an, the, and, or, of, in. La prima e l'ultima parola del titolo si capitalizzano sempre. AP e Chicago divergono su quali preposizioni saltare: scegliamo un default ragionevole e nelle FAQ trovi la lista.
I cinque stili da identificatore (snake_case, camelCase, PascalCase, kebab-case, CONSTANT_CASE) condividono un solo normalizzatore. Il testo viene spezzato in parole su: underscore, trattini, spazi, punti o una transizione minuscolo-maiuscolo (così userProfileName diventa user, profile, name). Ogni parola va in minuscolo e viene riunita con il separatore e la regola di capitalizzazione di destinazione. È lo stesso approccio del pacchetto npm change-case.
Come convertire le maiuscole/minuscole in tre passi
Un riquadro, un clic, un risultato. Nessuna registrazione, nessun upload.
- 1
Incolla il tuo testo
Metti il testo nel riquadro di input. Può essere una frase, una colonna di intestazioni CSV, un identificatore o un paragrafo su più righe. Il pulsante Sample riempie il riquadro con un piccolo esempio se prima vuoi vedere le conversioni affiancate.
- 2
Clicca un pulsante di stile
Scegli uno dei nove stili: UPPERCASE, lowercase, Title Case, Sentence case, snake_case, camelCase, PascalCase, kebab-case o CONSTANT_CASE. Il risultato compare subito nel riquadro di output. L'input originale è conservato, così puoi provare un altro stile senza ri-incollare.
- 3
Copia il risultato
Clicca Copy per portare il testo convertito negli appunti. Oppure clicca Download per salvarlo come file .txt. Entrambi i pulsanti girano in locale; nulla viene caricato.
Quando il convertitore è lo strumento giusto
Intestazioni CSV pronte per un caricamento SQL
Hai esportato un foglio con intestazioni come First Name, Date Of Birth, Customer ID, e Postgres le vuole come first_name, date_of_birth, customer_id. Incolla la riga di intestazione, clicca snake_case, e ottieni una versione pulita per identificatori che entra direttamente in un CREATE TABLE senza virgolette.
Titoli in slug di URL
Un titolo di blog come "Why We Switched from MongoDB to Postgres" diventa why-we-switched-from-mongodb-to-postgres in kebab-case, la convenzione URL raccomandata dalla documentazione Google sulla struttura degli URL. La punteggiatura sparisce, gli spazi diventano trattini, le maiuscole/minuscole si normalizzano. Incolla il titolo, clicca kebab-case, incolla nel tuo CMS.
Rinominare identificatori da Python a JavaScript
Stai spostando i nomi dei campi di risposta da un backend Python che restituisce user_profile_name e created_at a un frontend TypeScript che preferisce userProfileName e createdAt. Incolla gli identificatori in snake_case, clicca camelCase, e lo splitter gestisce correttamente i confini degli underscore. Anche il viaggio inverso funziona allo stesso modo.
Normalizzare identificatori SQL da uno schema legacy
Un vecchio schema Oracle ha identificatori in CONSTANT_CASE: USER_PROFILE_NAME, ORDER_LINE_ITEM_ID. La convenzione Postgres è minuscolo con underscore. Incolla l'elenco delle colonne, clicca snake_case, e ottieni una versione amichevole per Postgres. Lo splitter rispetta gli underscore esistenti, così gli identificatori multi-parola restano correttamente segmentati.
Mettere in Title Case un elenco di titoli di libri o canzoni
Hai raccolto titoli con maiuscolo/minuscolo misti: "the great gatsby", "TO KILL A MOCKINGBIRD", "Of mice And men". Incolla, clicca Title Case, e ottieni titoli capitalizzati correttamente con articoli e preposizioni brevi in minuscolo ("To Kill a Mockingbird"). Più rapido che fare riga per riga nel menu "Cambia maiuscole/minuscole" di Word.
Riformattare una risposta email tutta in MAIUSCOLE URLATE
Qualcuno ha risposto al thread di supporto tutto in maiuscolo. Incolla il messaggio, clicca Sentence case, e diventa leggibile: prima lettera di ogni frase in maiuscolo, il resto in minuscolo. Poi clicca Copy e rispondi con qualcosa che un umano possa leggere senza inarcare le sopracciglia.
Riferimento rapido degli stili
Un breve cheat sheet sui nove stili che questo strumento espone, più le insidie Unicode da conoscere. Gli esempi usano l'input <code>userProfileName</code> o "the quick brown fox" dove serve.
| Topic | What this tool does |
|---|
| UPPERCASE | Ogni lettera maiuscola. USERPROFILENAME, THE QUICK BROWN FOX. Si appoggia a String.prototype.toLocaleUpperCase. Comune nelle parole chiave SQL, in CSS text-transform: uppercase e nei valori predefiniti delle variabili d'ambiente in YAML. |
|---|
| lowercase | Ogni lettera minuscola. userprofilename, the quick brown fox. Si appoggia a String.prototype.toLocaleLowerCase. Utile per indirizzi email, hostname e chiavi di ricerca insensibili alle maiuscole. |
|---|
| Title Case | Prima lettera di ogni parola significativa in maiuscolo; articoli brevi e preposizioni in minuscolo. "The Quick Brown Fox Jumps Over the Lazy Dog". La prima e l'ultima parola si capitalizzano sempre. AP e Chicago divergono sulle preposizioni di cinque o più lettere. |
|---|
| Sentence case | Prima lettera di ogni frase in maiuscolo; il resto in minuscolo. "The quick brown fox jumps over the lazy dog." Spezza su ., !, ?. Utile per ripulire testi tutti in maiuscolo o normalizzare casi misti. |
|---|
| snake_case | Parole unite da underscore, tutto in minuscolo. user_profile_name. Convenzione Python per funzioni e variabili (PEP 8). Convenzione Postgres per gli identificatori. Comune in Ruby, Rust e identificatori SQL. |
|---|
| camelCase | Parole unite senza separatore; prima parola in minuscolo, le successive con la maiuscola iniziale. userProfileName. Convenzione JavaScript e Java per variabili e metodi. Usata per le chiavi degli oggetti JSON nella maggior parte delle API JS-native. |
|---|
| PascalCase | Parole unite senza separatore; ogni parola con maiuscola iniziale, prima compresa. UserProfileName. Convenzione per i nomi di classe in Java, C#, Python, Rust e TypeScript. A volte chiamata UpperCamelCase. |
|---|
| kebab-case | Parole unite da trattini, tutto in minuscolo. user-profile-name. Convenzione per selettori e proprietà CSS. Convenzione di slug URL (preferita da Google per la SEO). Convenzione degli attributi HTML secondo la spec, anche se le proprietà DOM sono esposte come camelCase. |
|---|
| CONSTANT_CASE | Parole unite da underscore, tutto in maiuscolo. USER_PROFILE_NAME. Convenzione per costanti a tempo di compilazione in C, Java e JavaScript. Comune nelle variabili d'ambiente (DATABASE_URL, NODE_ENV) e nelle parole chiave SQL. |
|---|
| Insidie Unicode | Turkish I col/senza puntino (i ↔ İ, I ↔ ı), il ß tedesco diventa SS in maiuscolo, la sigma finale greca ς compare solo a fine parola. Qui usa sempre metodi locale-aware. Vedi Lettera maiuscola su Wikipedia per una panoramica e Snake case / Camel case per la storia degli identificatori. |
|---|
Convertitore di maiuscole/minuscole: domande frequenti
Supporta la capitalizzazione locale-aware per turco, tedesco e greco?
Sì. UPPERCASE e lowercase usano String.prototype.toLocaleUpperCase e toLocaleLowerCase con la locale del tuo browser. In turco i diventa İ (con puntino) e I diventa ı (senza puntino), secondo le regole Unicode dello Unicode Technical Standard #21. Il ß tedesco resta tale in minuscolo e diventa SS in maiuscolo. La sigma finale greca ς è gestita correttamente.
Come decide Title Case quali parole saltare?
Title Case lascia in minuscolo articoli brevi, preposizioni e congiunzioni: a, an, the, and, or, but, nor, for, of, in, on, at, to, by, as, vs. La prima e l'ultima parola del titolo si capitalizzano sempre. AP e Chicago divergono nei casi limite (Chicago capitalizza preposizioni di cinque o più lettere; AP no). Usiamo la lista corta in stile AP perché su input misti è quella che dà i risultati più coerenti.
Qual è la differenza tra camelCase e PascalCase?
Entrambi uniscono le parole senza separatori, ma differiscono nella prima lettera. camelCase tiene la prima parola in minuscolo: userProfileName. PascalCase capitalizza ogni parola, prima compresa: UserProfileName. La divisione dipende dal linguaggio: Java usa camelCase per metodi e variabili e PascalCase per i nomi di classe; il PEP 8 di Python usa snake_case per le funzioni e PascalCase per le classi; la guida di stile JavaScript di Google usa camelCase per tutto tranne le classi.
Posso convertire identificatori di programmazione tra convenzioni di nomenclatura?
Sì. I cinque stili da identificatore (snake_case, camelCase, PascalCase, kebab-case, CONSTANT_CASE) usano lo stesso splitter di parole, che spezza su underscore, trattini, spazi, punti e transizioni minuscolo-maiuscolo. Così userProfileName, user_profile_name, user-profile-name e USER_PROFILE_NAME si dividono nelle stesse tre parole e si convertono pulitamente tra i cinque stili. Coincide con il comportamento del pacchetto npm change-case e della famiglia _.kebabCase di lodash.
Gestisce Unicode e testo non-ASCII?
Sì. Le conversioni usano i metodi di stringa locale-aware, quindi latino accentato (é, ñ, ü), greco, cirillico, Turkish I col/senza puntino, ß tedesca e la maggior parte degli altri sistemi di scrittura vengono piegati correttamente. Distingui case folding (confronto di uguaglianza, p.es. String.prototype.normalize + minuscolo) da case mapping (visualizzazione): qui facciamo case mapping. Per confronti di uguaglianza tra locale, è spesso meglio localeCompare con { sensitivity: 'base' }.
C'è un limite di dimensione sull'input?
Fino a qualche MB va bene e gira in ben meno di un secondo. Oltre i 10 MB il browser inizia a sentirne il peso, perché ridisegnare il riquadro di output su stringhe lunghe è costoso, non perché la conversione sia lenta. Per file più grandi, usa una CLI: tr '[:upper:]' '[:lower:]' in bash, str.upper() / str.lower() / str.title() in Python, oppure la proprietà CSS text-transform se è solo per visualizzazione.
Privacy e funzionamento
Il tuo testo non lascia mai il browser. Ogni conversione gira in locale sulla tua macchina con i metodi String standard del prototipo String di JavaScript. Nessuna analytics sull'input, nessun log, nessun viaggio al server. Le regole Unicode che seguiamo arrivano dallo Unicode Technical Standard #21 (Case Mappings), lo stesso standard che implementano i motori dei browser.