Autor | Zpráva | ||
---|---|---|---|
tester Profil * |
#1 · Zasláno: 15. 7. 2016, 19:37:11
Jak odstranit více řádkové i jednoduché komentáře pomocí JS?
Např. /* něco */ // ; celý řádek # celý řádek |
||
_es Profil |
#2 · Zasláno: 15. 7. 2016, 21:54:30
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,""); /*css rules*/ ; greedybody {}# non-greedy |
||
TomášK Profil |
#4 · Zasláno: 16. 7. 2016, 00:06:51
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,""); 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:" body { background: #000000; E[foo="/*"] Aneb buď máš nějaký omezený subset CSS, nebo je potřeba použít parser, ne regulární výrazy. |
||
Keeehi Profil |
#7 · Zasláno: 16. 7. 2016, 05:04:17
Nebo pokud to má sloužit k minifikaci javascriptů, použij raději už něco hotového.
|
||
Časová prodleva: 8 let
|
0