Ce este conversia de case a textului?
Conversia de case a textului preia un șir de intrare și emite aceleași cuvinte redate într-o convenție diferită de majuscule minuscule. Cele mai comune ținte sunt camelCase și PascalCase (folosite pentru identificatori în majoritatea limbajelor cu acolade), snake_case și CONSTANT_CASE (Python, Ruby, Rust, macro-uri C), kebab-case (URL-uri, nume de clase CSS, atribute HTML, nume de pachete npm), dot.case (chei de configurare, căi de obiecte JavaScript), path/case (identificatori în stil sistem de fișiere), Title Case și Sentence case (titluri și proză), plus lower case complet și UPPER CASE. Acest convertor detectează granițele naturale ale cuvintelor din intrarea ta — spații albe, cratime, underscore, puncte, slash-uri și tranzițiile minuscule→majuscule care marchează identificatorii de tip helloWorld — și le reasamblează cu separatorul și modelul de capitalizare pe care fiecare case țintă le necesită.
Cum funcționează conversia de case?
Intrarea ta este procesată exclusiv în browser folosind un tokenizator mic în vanilla JavaScript și unsprezece formatoare de case. Pașii de nivel înalt sunt:
- Intrarea ta este citită textual din zona de text — fiecare octet pe care l-ai lipit este păstrat în memorie local.
- Un tokenizator împarte intrarea pe spații albe, underscore, cratime, puncte și slash-uri, apoi împarte suplimentar fiecare bucată pe granițe minuscule→majuscule (deci
helloWorlddevine["hello", "World"]) și pe granițe literă↔cifră (deciv2APIdevine["v", "2", "API"]). - Tokenurile goale sunt filtrate, iar tokenurile supraviețuitoare sunt transformate în minuscule folosind
String.prototype.toLocaleLowerCase, astfel încât literele Unicode în turcă, germană și alte locale să fie păstrate corect. - Unsprezece formatoare asamblează apoi tokenurile în fiecare case țintă pe rând — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (cu o listă de cuvinte mici, astfel încât
și,the,ofetc. să rămână cu litere mici, cu excepția primului sau ultimului cuvânt), Sentence case, lower case complet și UPPER CASE complet. - Rezultatul este scris câte un rând per case în grila de rezultate; fiecare rând are propriul buton de copiere care folosește API-ul Clipboard asincron cu o soluție de rezervă
document.execCommand('copy')sincronă pentru browsere mai vechi.
De ce să folosești un convertor de case?
- Redenumire identificatori: redenumește o variabilă JavaScript din
user_idînuserId, o funcție Python dinhelloWorldînhello_worldsau o constantă Rust dinmaxBufferînMAX_BUFFERfără a edita manual un caracter odată. - Convertește chei de configurare: transformă o configurație JSON plină de chei camelCase în snake_case YAML pentru un serviciu Python sau în kebab-case pentru o diagramă Helm, într-o singură lipire.
- Scrie titluri: lipește un titlu în lucru și citește forma Title Case (cu excepțiile cuvintelor mici din Chicago Manual of Style) lângă forma Sentence case (AP Stylebook) — alege pe care o folosește publicația ta.
- Generează slug-uri URL: lipește titlul unei postări de blog și copiază forma kebab-case direct în câmpul slug al CMS-ului — tokenizatorul gestionează semnele de punctuație și frazele cu mai multe cuvinte fără a lăsa separatori rătăciți în urmă.
Care sunt aplicațiile comune ale conversiei de case?
Comutarea între convențiile de majuscule minuscule apare în ingineria software, crearea de conținut și ingineria datelor:
- Refactorizare cod: redenumește identificatori într-un cod sursă atunci când un ghid de stil se schimbă (de exemplu, camelCase JavaScript → snake_case Python în timpul unei rescrieri backend) fără a introduce greșeli de tipar.
- Remodelare payload API: convertește chei JSON camelCase în snake_case înainte de a le transmite unui backend Ruby on Rails sau Django, sau în kebab-case pentru un nume de clasă CSS-in-JS.
- Creare titluri și slug-uri: produce titluri de pagină Title Case, meta descrieri Sentence Case și slug-uri URL kebab-case din același titlu sursă într-un singur pas.
Cum arată un exemplu de conversie de case?
Lipește Hello World API în câmpul de intrare. Grila de rezultate afișează unsprezece rânduri simultan: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) și HELLO WORLD API (UPPER CASE). Aceeași intrare lipită ca helloWorldAPI se tokenizează la aceleași trei cuvinte — detectorul de granițe minuscule→majuscule gestionează și acea formă.
Rulează acesta în browserul meu?
Da. Tokenizatorul și cele unsprezece formatoare de case sunt aproximativ 120 de linii de JavaScript vanilla care rulează în fila browserului. Nimic nu este încărcat, niciun service worker nu proxează intrarea ta, iar pagina face zero solicitări de rețea pentru pasul de conversie în sine. Singurul trafic de ieșire sunt activele standard de încărcare a paginii (CSS, fonturi, analitică) — textul tău nu ajunge niciodată la Ultim8Soft.
Ce format de case ar trebui să folosesc pentru numele variabilelor?
Depinde de limbaj și de ghidul de stil al echipei. Bazele de cod JavaScript și TypeScript folosesc covârșitor camelCase pentru variabile și funcții, PascalCase pentru clase și componente React și CONSTANT_CASE pentru nume de variabile de mediu și constante la nivel de modul — atât ghidul de stil Google JavaScript, cât și ghidul de stil Airbnb fixează aceste alegeri. Python (PEP 8), Ruby și Rust preferă snake_case pentru variabile și funcții, PascalCase pentru clase și CONSTANT_CASE pentru constante la nivel de modul. Bazele de cod C și C++ (nucleul Linux, LLVM) se bazează pe snake_case pentru funcții și CONSTANT_CASE pentru macro-uri de preprocesor. Când ești în dubiu, rulează linter-ul sau formatatorul echipei tale — îți va spune ce convenție este aplicată.
Cum este tokenizată intrarea?
Tokenizatorul împarte mai întâi intrarea pe orice secvență de spațiu alb, underscore (_), cratimă (-), punct (.) sau slash (/). Fiecare bucată rezultată este apoi împărțită din nou pe granițe minuscule→majuscule (deci helloWorld devine ["hello", "World"]) și pe granițe literă↔cifră (deci v2API devine ["v", "2", "API"]). Tokenurile goale sunt filtrate, iar tokenurile supraviețuitoare sunt transformate în minuscule prin String.prototype.toLocaleLowerCase. Formatoarele re-capitalizează și reunesc apoi tokenurile cu separatorul pe care fiecare case țintă îl necesită. Strategia gestionează toate cele șase forme comune de identificatori — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE și proză simplă separată prin spații — din start.
Ce zici de caracterele Unicode / non-ASCII?
Literele Unicode supraviețuiesc drumului dus-întors. Tokenizatorul folosește String.prototype.toLocaleLowerCase și toLocaleUpperCase, care respectă regulile specifice localei de capitalizare — i-ul turcesc punctat vs fără punct, ß-ul german capitalizat la SS, literele latine cu accente în franceză și spaniolă și așa mai departe. Caracterele non-litere care NU sunt în setul de separatori (spațiu alb, _, -, ., /) — de exemplu, cifre, litere accentuate sau caractere CJK — sunt păstrate în interiorul tokenului în care apar, iar formatoarele de case le re-emit textual. Aceasta înseamnă că o intrare precum nœud_principal se tokenizează la ["nœud", "principal"] și se convertește curat la nœudPrincipal (camelCase) sau NœudPrincipal (PascalCase).
Acest convertor de case este o singură pagină statică care rulează tokenizatorul și cele unsprezece formatoare exclusiv în browser — fără bibliotecă vendor, fără apel de rețea per conversie, fără cont. Lipește orice text mai sus, scanează cele unsprezece ieșiri de case una lângă alta și copiază-o pe cea de care ai nevoie.