Avatar billede snuseren.dk Nybegynder
16. februar 2003 - 12:21 Der er 8 kommentarer og
1 løsning

Få flere funktioner på

Hej!

Jeg har lige fundet dette script, som omdanner f.eks. www.snuseren.dk til et hyperlink. Ligesom her på eks. hvor noget der f.eks. starter med www. bliver til hyperlink.

Problemet er at jeg ikke kan finde ud af at få flere funktioner på. Her på scriptet skal url'erne starte med http:// , og jeg kan ikke få den til bare at være www. Den som kan gøre sådan at den både laver link med email adresser, www. adresser, og http:// adresser får 100 point.

Scriptet ser sådan ud:

<%@ LANGUAGE=JScript %>
<% Response.ContentType = "text/HTML" %>
<%
// Indsendt af Crax

function autoHighLight(streng) {
  length = streng.length
  URL = false
  linkname = new String()
  for(x=0; x<length; x++){
    C = streng.charAt(x)
    // Det antages at alle links starter med "http://"
    if(streng.substr(x, 7) == "http://") {
      Response.write("<a href='")
      URL = true
}


   
   
   
    if(URL){
      // Hvis der er mellemrum i teksten og URL er sand, må linket være slut
      // Dette klarer "klik her http://www.test.com for at..."
      // Hvis der er et punktum og et mellemrum og URL er sand, er linket slut
      // Dette klarer "klik her http://www.test.com. Eller..."
      // Hvis der er et komma og er mellemrum og URL er sand, er linket slut
      // Dette klarer "klik her http://www.test.com, for at..."
      // Til sidst kontrolleres på diverse kontroltegn, der bl.a. bevirker linjeskift
      if(C == " " || streng.substr(x, 2) == ", " || streng.substr(x, 2) == ". " || C == "\n" ){
        Response.write("'>"+linkname+"</a>")
        URL = false
        linkname = ""
      }
      linkname = linkname + C
    }
    // Udskriv tegnet
    Response.write(streng.charAt(x))
  }
  // Hvis slutningen af teksten er nået og URL er sand, skal linket afsluttes
  if(URL)
    Response.write("'>"+linkname+"</a>")
   
     
   
}
streng = "hej http://www.eksperten.dk www.snuseren.dk anders@snuseren.dk";
%>
<%=autoHighLight(streng)%>

MVH
Anders
Avatar billede snuseren.dk Nybegynder
16. februar 2003 - 12:58 #1
haloooooooo
Avatar billede midas_dk Nybegynder
17. februar 2003 - 14:22 #2
Det bli'r ret svært at lave ét script (én funktion, altså), der tager højde for såvel http://blabla, www.blabla og bla@bla, idet det eneste, de har til fælles er minimum ét punktum :-/

Og har du tænkt på at visse URLs ikke nødvendigvis har www. i sig? F.eks. exp.dk... Man kunne måske overveje at lave en funktion for hver funktionalitet, men det vil aldrig blive 100% pålideligt.
Avatar billede midas_dk Nybegynder
17. februar 2003 - 14:24 #3
Prøv at kigge lidt nærmere på det der hedder Regular Expressions.

http://www.webreference.com/js/column5/
Avatar billede snuseren.dk Nybegynder
17. februar 2003 - 17:37 #4
midas ->> Jeg har et par ASP VBScript koder, hvor det virker helt fint, både med mail, http://isds.dk www.siodejf.dk http://www.idfjs.dk, så det kan lade sig gøre! Problemet er bare at jeg skriver javascript asp, og det er der desværre ikke så mange der gør :-(.
Avatar billede mortrr Praktikant
18. februar 2003 - 01:14 #5
De skulle da ikke være så svære at oversætte fra duplo-script til jscript (som jo så må blive lego-script).

Der er altså ingen forskel på at skrive jscript til client-html og skrive jscript i asp (det er faktisk nemmere), så jeg fatter heller ikke at der ikke er flere der bruger jscript.

Hvis de ikke kan oversættes, så kan du jo lave en server-side <script blok i vbscript, med en funktion som du kalder fra din jscript.

- Morten
Avatar billede snuseren.dk Nybegynder
19. februar 2003 - 18:58 #6
Problemet er: Jeg bliver nødt til at skrive <% Language=JavaScript %> i toppen, af siden, så jeg kan jo ikke blande vbscript ind i det.. Jeg bliver nødt til det, fordi jeg simpelthen ikke kan finde ud af at programmere vbscript mere, og der skal jo også være flere ting i siden, end den ene funktion.
Avatar billede mortrr Praktikant
19. februar 2003 - 21:45 #7
Man kan da godt blande vbscript ind i en jscript side, så længe det drejer som rimeligt enkelt-stående funktioner.

Det hedder forøvrigt ikke javascript (mere), men jscript eller ecmascript.
Også i <% @language=jscript%>

Fx:

<% @language=jscript%><html><body>
<script language=vbscript runat=server>
function HilsVelkommen()
    Response.Write "Hej og velkommen til"
end function

Datoen=FormatDateTime(Date())
</script>
<%
HilsVelkommen();
%>
<script language=jscript runat=server>
Response.Write("<br>Dato: "+Datoen);
</script>
<body>
</html>

Så er der vist blivet mixet nok.

- Morten
Avatar billede midas_dk Nybegynder
20. februar 2003 - 09:27 #8
morten >> Okay, det er da en mulighed, men det er en VILD performance killer at skifte mellem sprog på en ASP-side... Ikke at jeg har andre forslag, men det er da værd at overveje.
Avatar billede snuseren.dk Nybegynder
18. april 2003 - 18:50 #9
Okay lukker. (Undskyld at jeg først lukker nu, men jeg havde altså glemt dette spm :o( )
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
Kurser inden for grundlæggende programmering

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