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

Odebírat
Upozornit na
guest
1 Komentář
Nejstarší
Nejnovější Most Voted
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/

TypeScript 7 v Go: rychlejší buildy, chybějící API

Betaverze TypeScriptu 7.0 ukazuje víc než rychlejší tsc. Microsoft převádí kompilátor a jazykovou službu z původní kódové základny psané v TypeScriptu a běžící jako JavaScript do Go, přidává paralelní typovou kontrolu a připravuje novou editorovou část postavenou na LSP. Pro část nástrojů ale nepůjde o prostou výměnu binárky: TypeScript 7 zatím nemá stabilní náhradu dnešního Compiler API.

Prolog nezmizel. Jen dnes žije v jiných nástrojích

Prolog nezmizel. Jeho hlavní myšlenku dnes potkáváme v nástrojích, které se Prologu na první pohled nepodobají: v CodeQL pro analýzu kódu, v Rego pro policy-as-code, v Z3 pro práci s omezeními a v Leanu pro formální důkazy. Každý řeší jiný problém, ale všechny připomínají totéž: někdy je lepší popsat vztahy, pravidla, omezení nebo tvrzení než vrstvit další if.