Avatar billede zeusdk Nybegynder
08. december 2002 - 17:00 Der er 12 kommentarer og
2 løsninger

Ret i url

Hej

Jeg skal bruge et script, som gør følgende med en url - efter princippet:

http://www.minhjemmeside.dk/index.htm -> http://www.minhjemmeside.dk/

http://www.minhjemmeside.dk -> http://www.minhjemmeside.dk/

Med andre ord, så skal scriptet bare finde domænet og sætte et ekstra / i enden af det, hvis altså det ikke allerede findes.
Avatar billede zeusdk Nybegynder
08. december 2002 - 17:21 #1
Jeg har selv følgende script, men det funker ikke helt:

var txt = document.linkSubmit.link.value
var pos  = txt.lastIndexOf("/");
if (txt.slice(0,6) == "http://" && pos != 6) txt.value = document.linkSubmit.link.value.slice(0, pos + 1);
        if (pos != txt.length) txt += "/";
        document.linkSubmit.link.value = txt

Det smider konsekvent et ekstra / i enden af url, selvom der allerede er et. Hvordan udbedres det?
Avatar billede jespernaur Nybegynder
08. december 2002 - 17:39 #2
Prøv dette:

  var url = 'http://www.minhjemmeside.dk/index.htm';
  result = url.replace( /^(.+\/\/[^\/]+).*$/, '$1/' );

Mvh
Jesper Naur
Avatar billede mikoalngelo Nybegynder
08. december 2002 - 18:36 #3
Jeg har det, men det virker heller ikke helt:::

<SCRIPT TYPE="text/javascript">
var txt = document.linkSubmit.link.value;
var txt2 = txt.slice(0, txt.length-1);
var pos  = txt.lastIndexOf("/");
var pos2  = txt2.lastIndexOf("/");
txt = txt.slice(0, pos + 1);
tilfojslash()
document.linkSubmit.link.value = txt;

function tilfojslash(){
    if (txt == txt2) txt += "/";
}
</SCRIPT>
Avatar billede zeusdk Nybegynder
08. december 2002 - 18:49 #4
>mikoalngelo
Tak for udbygningen - jeg kigger lige på det.

>Jesper Naur
hvad gør dit script?
Avatar billede jespernaur Nybegynder
08. december 2002 - 19:20 #5
Har du ikke prøvet det? Det løser dit problem vha af et regulært udtryk.

Det regulære udtryk matcher:

^        begyndelsen af strengen
(        forklaring følger
.+      et positivt antal vilkårlige tegn
\/\/    2 stk / (de skal escapes med \ i regulære udtryk)
[^\/]+  et positivt antal tegn, der ikke må være /
)        forklaring følger
.*      nul eller flere vilkårlige tegn
$        afslutningen af strengen

Dette vil matche hele strengen, paranteserne inkluderer den del af strengen, der ligger inden en eventuel forekomst af en enkelt / (du ser, at der er nødt til at være lidt ekstra arbejde for at komme forbi http://). Resultatet bliver sat til det matchede indhold af parantesen ($1) efterfulgt af en /

Mvh
Jesper Naur
Avatar billede jespernaur Nybegynder
08. december 2002 - 19:41 #6
Det kan indbygges i det du allerede har, som vist:

var txt = document.linkSubmit.link.value;
document.linkSubmit.link.value = txt.replace( /^(.+\/\/[^\/]+).*$/, '$1/' );

så har du en 2-liniers fungerende løsning.
Avatar billede zeusdk Nybegynder
08. december 2002 - 19:43 #7
Ok, men gør det lige for mig - jeg er begynder.
Avatar billede jespernaur Nybegynder
08. december 2002 - 20:28 #8
Jeg har jo gjort det, du skal erstatte din kode fra din første kommentar med de 2 linier jeg har vist, det burde du da nok kunne klare?
Avatar billede zeusdk Nybegynder
08. december 2002 - 21:04 #9
Nå men koden virker næsten - problemet er bare, at den ikke tager højde for, at en hjemmeside også kan hedde http://www.hjemmeside.dk/minhjemmeside/

Kan du få scriptet til at gøre det? Så er mit spørgsmål besvaret.
Avatar billede jespernaur Nybegynder
08. december 2002 - 22:23 #10
Prøv detteher:

var txt = document.linkSubmit.link.value;
document.linkSubmit.link.value = txt.replace( /^(.+\/\/.+?)(\/[^\/]*)?$/, '$1/' );
Avatar billede zeusdk Nybegynder
09. december 2002 - 16:40 #11
Det virker - tak for hjælpen.
Avatar billede mikoalngelo Nybegynder
10. december 2002 - 12:08 #12
Hjælp mig lige her.
Er der nogen der gider og smide et link til at godt sted og lære det der underlige krimskrams?
Avatar billede mikoalngelo Nybegynder
10. december 2002 - 12:13 #13
Regular expression, hedder det...
sorry
Avatar billede jespernaur Nybegynder
10. december 2002 - 19:33 #14
Hvis du søger efter "regular expression tutorial" på Google, får du lige så mange links, du overhovedet kan ønske dig. Den virkelige guldgrube er dog bogen "Mastering Regular Expressions" af Jeffrey Friedl, udgivet af O'Reilly
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