Přejít k navigační liště

Zdroják » Zprávičky » Pro JavaScript není mezera jako mezera

Pro JavaScript není mezera jako mezera

Zprávičky JavaScript, Různé

Pokud používáte v JavaScriptu regulární výrazy pro práci s řetězci, můžete se setkat s podivnými odlišnostmi implementace metaznaku s (whitespace – mezery, tabelátory apod.). Všechny prohlížeče správně vyhodnotí znaky jako U+0020 (mezera), U+000A (LF) nebo U+000B (vertikální tabulátor). Co je překvapivější, tak některé prohlížeče (Safari do verze 3.2.1, IE 6–8) do s nezapočítají nerozdělitelnou mezeru U+00A0. V tom, jak vyhodnocují znaky nad U+2000, kde se vyskytují různé tenké mezery, vlasové mezery, čtvrtčtverčíkové mezery, „em“ a „en“ mezery a další, panuje už naprostý chaos. Přehledně se touto problematikou zabývá článek Whitespace deviations.

Komentáře

Subscribe
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Daniel Steigerwald

Jen bych si dovolil pro úplnost doplnit, že implementace regulárních výrazů má více nepřesností, než pouze whitespaces.

http://blog.stevenlevithan.com/…-and-unicode
http://blog.stevenlevithan.com/…m-javascript

a pokud někdo hodně spoléhá na regexy, doporučuji: http://xregexp.com/

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.