Kontroll av strenglengde
Kontroller lengden på en string i tegn, Unicode-kodepunkter, UTF-16-kodeenheter og UTF-8-byte. Angi en minste- og største lengde for å se om den passer, og få en avkortet kopi som aldri deler en emoji i to. Kjøres i nettleseren.
Inndata
Utdata
Les meg
Hva er strenglengde?
Lengden på en streng avhenger av hva du teller. En person ser tegn, mens programmer teller kodepunkter, UTF-16-kodeenheter eller byte, og disse tallene er ofte forskjellige. Emoji-tegnet 👍🏽 ser ut som ett tegn, men består av 2 kodepunkter, 4 UTF-16-kodeenheter og 8 UTF-8-byte. JavaScript, Java og C# rapporterer UTF-16-kodeenheter som lengden, databaser begrenser ofte antall byte, og skjemafelt kan telle linjeskift som to tegn.
Verktøybeskrivelse
Dette verktøyet viser lengden på en streng i fire enheter samtidig og kontrollerer den mot en minimums- og maksimumslengde. Bruk det for å finne ut om et brukernavn, en tittel eller en databaseverdi passer innenfor en grense, eller hvorfor to programmer rapporterer forskjellige lengder for den samme teksten. Hvis strengen er for lang, får du en avkortet kopi som passer innenfor grensen uten å dele et tegn i to.
Funksjoner
- Teller tegn, Unicode-kodepunkter, UTF-16-kodeenheter og UTF-8-byte
- Kontrollerer lengden mot en valgfri minimums- og maksimumslengde, i enheten du velger
- Viser hvor mange enheter som gjenstår, mangler eller overskrider grensen
- Forkorter en streng som er for lang uten å dele emoji, flagg eller bokstaver med aksent
- Kan ignorere innledende og avsluttende blanktegn
- Kan telle linjeskift som CR LF, slik HTML-skjemaer sender dem inn
Slik fungerer det
Tegn er grafemklynger, altså enheter som en person leser som ett tegn, og de finnes ved hjelp av nettleserens innebygde segmentering av Unicode-tekst. Kodepunkter er Unicode-verdiene i strengen. UTF-16-kodeenheter er det String.length returnerer i JavaScript: tegn utenfor det grunnleggende flerspråklige planet, for eksempel de fleste emoji, bruker to. UTF-8-byte er størrelsen på strengen når den er kodet som UTF-8. Forkortingen beholder hele tegn frem til det neste tegnet ville overskredet maksimumet.
Tips
- For en
VARCHAR-grense i MySQL eller envarchar-grense i PostgreSQL bør du kontrollere etter Unicode-kodepunkter. For en bytegrense, for eksempel for en indeksnøkkel eller et felt i en nettverksprotokoll, bør du kontrollere etter UTF-8-byte. maxlength-attributtet i et HTML-inndatafelt teller UTF-16-kodeenheter, så én emoji kan bruke opptil to.- Nettlesere sender linjeskift i textarea-felt som CR LF, så en server som kontrollerer lengden, kan telle hvert linjeskift to ganger. Slå på CR LF-alternativet for å samsvare med dette.