Autor Zpráva
peta
Profil *
regularni vyrazy (LI A text) z ("odkaz text" text)
peta
Profil *
potrebuji vytvorit regularni vyraz, ktery mi prevede PRE na LI A seznam

zdroj:
<pre>
"odkaz" \t text odkazu \t text \n
"odkaz" \t text odkazu \n
<pre>

vysledek:
<li><a href="odkaz">text odkazu</a> text </li>
<li><a href="odkaz">text odkazu</a></li>

zkousel jsem neco takoveho:
a = objGet("pre").innerHTML;

a = a.replace(/\"(.*)\"\t(.*)((\t.*\n)|(\n))/g, "<li><a href=\"http://$1\">$2</a>$3</li>\n");

objGet("pre").innerHTML = "";
objGet("aaa").innerHTML = a;

Ale nejak se to spatne ukonci a prevede to cely radek.
Oswald
Profil
Pokud to chápu dobře, tak takhle:

<pre id="pre">
"odkaz" text odkazu
"odkaz" text odkazu
</pre>

<ul id="ul"></ul>

<script>
var pre = document.getElementById('pre');
var ul = document.getElementById('ul');
ul.innerHTML = pre.innerHTML.replace(/^"(.*?)"\t(.*)$/gm, '<li><a href="http://$1">$2</a></li>');
</script>
Oswald
Profil
Aha, on je tam ještě text za tím odkazem, tak to teda spíš takhle:

pre.innerHTML.replace(/^"(.*?)"\t(.*?)(\t(.*?))?$/gm, '<li><a href="http://$1">$2</a> $4</li>')
peta
Profil *
Oswald
Mno, ono je to tak, ze problemy jsou 2
"aaa" \t bbb \t ccc \n
"aaa" \t bbb \n
Bud tam radek konci nebo je tam text, ktery bych mel rad za tim A.
Viz
<li><a href="aaa">bbb</a> ccc </li>
<li><a href="aaa">bbb</a></li>

A ve skutecnosti zdroj vypada takto:
- nadpis -
"aaa" \t bbb \t ccc \n
"aaa" \t bbb \n
"aaa" \t bbb \t ccc \n

- nadpis -
"aaa" \t bbb \t ccc \n
"aaa" \t bbb \t ccc \n
"aaa" \t bbb \n
"aaa" \t bbb \n


Takze tam mam jeste scripty:
a = a.replace(/=== /g, "<h3>");
a = a.replace(/ ===/g, "</h3>");
a = a.replace(/--- /g, "<h4>");
a = a.replace(/ ---/g, "</h4>");
a = a.replace(/- /g, "<b>");
a = a.replace(/ -/g, "</b>");
peta
Profil *
Oswald Dik, ten script funguje, jeste doladim nejake detaily...
peta
Profil *
Jo, kdyby se ti chtelo, tak dalsi problem by byl pridat ke kazde rade LI kolem UL tagy :)
Zatim mne napadlo pouzit:
</li>\n\n -> </li>\n</ul>\n\n
A jeste popremyslim, jak napsat oteviraci tag.
peta
Profil *
nakonec jsem se na to vykaslal a udelal takovou fintu FN :)
a = a.replace(/\<\!--/g, "\<");
a = a.replace(/--\>/g, "\>");

a = a.replace(/\n=== /g, "\n<\/ul>\n<br\/><h3>");
a = a.replace(/ ===\n/g, "<\/h3>\n");
a = a.replace(/\n--- /g, "\n<\/ul>\n<br\/><h4>");
a = a.replace(/ ---\n/g, "<\/h4>\n");
a = a.replace(/\n- /g, "\n<\/ul>\n<br\/><b>");
a = a.replace(/ -\n/g, "<\/b>\n<ul>\n");


<!--ul-->

Cili kazdy nadpis ukoncuje UL, ale jenom B jej otvira.
Ale tak samozrejme muzu dat UL /UL vsude...
peta
Profil *
Oswald
Neni to uplne dokonale, zlobi mne tam par veci, ale script je zde:
www.volny.cz/peter.mlich/www.htm
Oswald
Profil
ale script je zde:
www.volny.cz/peter.mlich/www.htm



Je tam 514 odkazů, takže si nejsem tak úplně jistý, na který kliknout ,-)
d
Profil *
dddf
f


f
Toto téma je uzamčeno. Odpověď nelze zaslat.