Avatar billede Slettet bruger
05. maj 2003 - 22:56 Der er 8 kommentarer og
1 løsning

Hive URL, navn og target ud af string

Hej!

Jeg har brug for lidt hjælp til at gøre følgende:

Jeg har en streng med indhold der kan se ud på 2 måder:

1. "Her er noget tekst"
2. "<A href="http://www.haj.dk/" target=_blank>Her er noget tekst</A>"

Dette indhold skulle gerne lægges i 3 forskellige JS variabler:

1. Linknavn
2. Linkadresse
3. Target

Med den første mulighed er det jo nemt nok, da der kun er et linknavn.

Med den anden mulighed må der være brug for lidt reg. exp.

Og det er jeg en klovn til ;)

Hjælp?
Avatar billede olebole Juniormester
05. maj 2003 - 23:00 #1
<ole>

ehhhh .... en lidt tydeligere forklaring, please  :)

/mvh
</bole>
Avatar billede Slettet bruger
05. maj 2003 - 23:06 #2
hehe..synes nu den var rimeligt tydelig ;)

<script type="text/javascript">

markering = "Her er noget tekst";

if(der ikke findes a href i markering) {
linknavn = markering
} else {
linknavn = Det der står mellem <A href="http://www.haj.dk/" target=_blank> og </A>
linkadresse = Det der står efter <A href(kan også være mailto:)
target = led efter _blank eller _self if markering og indsæt det fundne i target

</script>

:)
Avatar billede olebole Juniormester
05. maj 2003 - 23:30 #3
<script type="text/JavaScript">
function checkStr(str) {
    if (str.match(/<A href/gi)) {
        var re = new RegExp("<A href='([^']*)' target='([^']*)'>([^<]*)<\/A>","ig");
        re.exec(str);
        return {"adr":RegExp.$1, "targ":RegExp.$2, "txt":RegExp.$3};
    } else {
        return {"txt":str};
    }
}

//var str = "<a href='http://www.noget.dk' target='_blank'>BlaBlaBla</A>";
var str = "blaBlablaBlabla";

var res = checkStr(str);
if (res.adr) {
    alert(res.adr);
    alert(res.targ);
    alert(res.txt);
} else {
    alert(res.txt);
}
</script>
Avatar billede olebole Juniormester
05. maj 2003 - 23:33 #4
... og HUSK: Du bør _altid_ have gåseøjne om dit target  ;o)
Avatar billede olebole Juniormester
05. maj 2003 - 23:52 #5
Du kan også skrive funktionen sådan:

function checkStr(str) {
    if (str.match(/<A href/gi)) {
        var re = /<A href='([^']*)' target='([^']*)'>([^<]*)<\/A>/gi;
        re.exec(str);
        return {"adr":RegExp.$1, "targ":RegExp.$2, "txt":RegExp.$3};
    } else {
        return {"txt":str};
    }
}
Avatar billede Slettet bruger
06. maj 2003 - 00:31 #6
Nu har jeg haft lejlighed til at teste, og med lidt forbehold for hvad der kan være af sjove indtastninger fra en brugers side virker det helt perfekt.

Jeg kan vel godt røbe at det er så man kan redigere i de links der er indsat med et CMS system :)

Tusind tak for hjælpen, også selvom du er gået i seng ;)
Så mangler jeg bare lige et svar fra din side.
Avatar billede olebole Juniormester
06. maj 2003 - 00:35 #7
"selvom du er gået i seng" .... *Muaahhahahhhhhaaahahahhhahahhaa* ... en koder sover aldrig  ;oD
/mvh
Avatar billede olebole Juniormester
06. maj 2003 - 00:42 #8
Nu kommer det jo anpå, hvordan du skal bruge det, men bare et andet forslag:

<html>
<head>
<script type="text/JavaScript">
function checkLinks() {
    var aAs = document.getElementsByTagName("A");
    for (i=0; i<aAs.length; i++) {
        alert(aAs[i].href);
        alert(aAs[i].target);
        alert(aAs[i].innerHTML);
    }
}
</script>
</head>
<body>

<a href='http://www.noget.dk' target='_blank'>BlaBlaBla</A>

<button onclick="checkLinks();">TEST</button>

</body>
</html>
Avatar billede Slettet bruger
06. maj 2003 - 00:43 #9
hehe...*G*

Så kan du jo tage et kig på www.partout.dk/udvidet/indhold og logge ind med admin / admin hvis du keder dig... Prøv selv om du kan finde frem til hvor linktingesten kom ind henne ;)

Jeg vil krybe til køjs nu, G'nat :P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester