Hvordan laver man en metode der viser link skrevet i en tekst
ASP @ JAVASCRIPTJeg har lavet en teksteditor, hvor man imellem teksten kan indtaste et link.
Mine overvejelser har været, om linket skulle fremstå som selve URL'en - ligesom når man her på eksperten tilføjer et link i et svar.
Eller skal linket have et navn man selv kan vælge.
Jeg valgte det sidste.
Min syntax i teksteditoren er følgende: <link>navn;URL</link>
Eksempel:
<link>Eksperten.dk;http://www.eksperten.dk</link>
Så skulle teksten fremstå som det endelige resultat på denne måde: <a href="http://www.eksperten.dk">Eksperten.dk</a>
Koden virker også helt fint indtil....
Når ? kommer ind i billedet.
Eks: http://www.moesmus.dk/my.php?sub=77&language=0 hvor spørgsmål indgår i URL'en
Så kløjes replace-funktionen i det, og laver ikke det, den får besked på. Resultatet er at min whileløkke fortsætter i det uendelige.
Så mit 60point sprg er hvordan laver man en metode der ignorere syntaxudtryk som ? er.
-----KODE------------------------------------------------------------------------------
// "nfo" er String-variablen der indeholder teksten hvor i linkene er.
var l = true; // Stopper whileløkke
var ltmp1; // Tal, som peger på første tegn i linket (<link>)
var ltmp2; // Tal, som peger på sidste tegn i linket (</link>)
var subl = new String(); // String der indeholder teksten mellem <link> og </link>
var ln; // Array der indeholder navn og URL. [0] = navn, [1] = URL
while(l) {
ltmp1 = nfo.indexOf("<link>");
if(ltmp1 >= 0) {
ltmp2 = nfo.indexOf("</link>");
if(ltmp2 > 0) {
subl = nfo.substring(ltmp1, (ltmp2)+7) + "";
if(subl.indexOf(";") > 0) {
ln = subl.split(";");
if(ln[1].length > 7) {
ln[0] = ln[0].substring(6, ln[0].length);
ln[1] = ln[1].substring(0, (ln[1].length)-7);
nfo = nfo.replace(subl, "<a href='" + ln[1] + "' target='new' class='plainAtext'>" + ln[0] + "</a>");
}
else l=false;
}
else l=false;
}
else l=false;
}
else l=false;
}
---------------------------------------------------------------------------------------