Pri používaní skriptu, kde sa generuje markup, môžu neošetrené znaky spôsobiť nepredvídateľné a ťažšie identifikovateľné chyby programu. Jedným z týchto znakov je aj apostrof v prípade, ak má byť vytvorený markup s atribútmi a hodnotami.Ak autor zabudne v hodnotách atribútov upraviť apostrof, naruší sa štruktúra elementu, ktorá podľa toho čo s ňou bude ďalej vykonávané, môže výrazne ovplyvniť chod programu. V tomto prípade nie je možné použiť escape sekvenčný zápis (spätnú lomku). Apostrofy sú navyše konvertované na úvodzovky.Príklad: Hodnota atribútu title a'b'c obsahuje apostrofy | var fragment = "<span title='a'b'c'>apostrophe</span>"; | document.getElementById("insert").innerHTML = fragment; |
|
Výsledkom takto zapísaného kódu je: | <span title="a" b'c'="">apostrophe</span> |
|
Pre zamedzenie tohto nežiaduceho efektu je potrebné použiť entitu '. K dispozícii je aj entita ', ktorá ale nie je podporovaná všetkými internetovými prehliadačmi. Príklad: Nahradenie apostrofu za entitu ' | var f = "<span title='a&amp;#39;b&amp;#39;c'>apostrophe</span>"; | document.getElementById("insert").innerHTML = f; |
|
Reťazec a'b'c bol nahradený za reťazec a'b'c. Premenná f reprezentuje názov fragment. Skrátená bola len z dôvodu zápisu na jeden riadok pre účely zobrazenia. Pri tvorbe kódu je potrebné používať výstižné a zmysluplné názvym, teda fragment a nie f.Oveľa jednoduchšie riešenie je držať sa pravidiel jazyka HTML a hodnoty atribútov zapisovať do úvodzoviek. Potom sa už stačí iba vyvarovať hodnotám, ktoré obsahujú úvodzovky. Úvodzovky v reťazcoch JavaScriptu je potrebné escapovať znakom \, keďže sa reťazce v JavaScripte vkladajú do úvodzoviek. Samozrejme je možné použiť aj apostrofy, záleží na coding style.Príklad: Správny zápis markup-u v jazyku JavaScript. | var fragment = "<span title=\"a'b'c\">apostrophe</span>"; | document.getElementById("insert").innerHTML = fragment; |
|
Reťazce určené pre atribúty elementov je možné ošetriť cez metódu replace() alebo jej príbuzné funkcie podľa druhu programovacieho jazyka. V PHP je to napríklad metóda preg_replace(). Oveľa efektívnejšie je byť vždy konzistentný (držať sa pravidiel a zásad príslušného jazyka alebo dohodnutého coding style) a neuľahčovať si prácu sprehľadnením programového kódu čo môže neskôr spôsobovať chyby programu.