Autor Zpráva
tester
Profil *
Jak odstranit více řádkové i jednoduché komentáře pomocí JS?
Např. /*
něco */
//
; celý řádek
# celý řádek
_es
Profil
Odstrániť skadiaľ? V akej syntaxe tie komentáre sú? Každý jazyk môže mať inú syntax - iný zápis je v HTML, v CSS, v C, v JS, vo VB...
tester
Profil *
/*
css rules
*/

; greedy
body {}
# non-greedy
// anything


Zkusil jsem toto ale nejede mi to vůbec.

function parse(){
  var src = document.getElementById("css").value;
  src = src.replace(/(?:^[;#]|\/\/).*[\r\n]/g,"").replace(/[\r|\n]/g,"");
  console.log(src);
}

Zezačátku mi to jelo ale jak jsem tam přidal
(?:)
^
\/\/
tak už to nejede. Tak nevím kde je chyba.


src = src.replace(/(?:^[;#]|\/\/).*$/g,"").replace(/[\r|\n]/g,"");
výsledek
/*css rules*/ ; greedybody {}# non-greedy
TomášK
Profil
V javascriptu matchuje ^$ začátek a konec řetězce. Má-li matchovat začátek resp. konec řádky, je potřeba přidat modifikátor 'm'. Přijde mi podezřelé, co děláš, nenapadá mě žádné rozumné využití. Co to bude až to bude? A nevadí, že ty komentáře zničí i validní CSS?
body {
  background: url(http://www.bg.com/pinkish.gif)
; color: red;
}
tester
Profil *
Už jsem na to přišel:
src = src.replace(/(?:[;#]|\/\/).*/g,"").replace(/[\r|\n]/g,"").replace(/\/\*.*\*\/\s?/g,"");
nefungovalo to protože si neporadil s ^ a $


TomášK:
Dík, tak středník vypustím a vyřešeno:

function parse(){
  var src = document.getElementById("css").value;
  src = src.replace(/(?:^#|\/\/).*/mg,"").replace(/[\r|\n]/g,"").replace(/\/\*.*\*\/\s?/g,"");
  console.log(src);
}
TomášK
Profil
Vypusť i //:
' background: url(http://www.bg.com/pinkish.gif)'.replace(/(?:^#|\/\/).*/mg,"")
" background: url(http:"
mřížku:
   body { background: 
#000000; 
A tohle je myslím taky platné a regexpy to hádám neošetříš:
E[foo="/*"]

Aneb buď máš nějaký omezený subset CSS, nebo je potřeba použít parser, ne regulární výrazy.
Keeehi
Profil
Nebo pokud to má sloužit k minifikaci javascriptů, použij raději už něco hotového.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0