Avatar billede svjensen Nybegynder
18. september 2003 - 08:01 Der er 9 kommentarer og
1 løsning

Gøre links klikbare (hos b-one)

Jeg har et lille script, der tager en tekst som brugeren indtaster i en form, hvorefter scriptet løber teksten igennem for at lave eventuelle links (inkl. email adresser) 'klikbare'.

Scriptet virker på min egen IIS/PWS, men når jeg tester det hos min udbyder (b-one, som anvender Chili!ASP), så får jeg følgende fejlmeddelelse:

Microsoft VBScript compilation error '800a03ea'

Syntax error

/test/test.asp, line 9

Set Rx = New RegExp
---------^


Her er scriptet:

<html>
<head>
</head>
<body>
<%
If request.querystring("action") = "vis" Then

    strinput = request.form("tekst")
    Set Rx = New RegExp
    Rx.Global = True
    Rx.IgnoreCase = True

    Rx.Pattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,4}\S*)"
    strOutput = Rx.Replace(strInput, " <a href=""mailto:$1"">$1</a> ")

    Rx.Pattern = "(http|https|news|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
    strOutput = Rx.Replace(strOutput, " <a href=""$1$2"">$1$2</a> ")

    Rx.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,4}\S*)"
    strOutput = Rx.Replace(strOutput, " <a href=""http://$2"">$2</a> ")

    Set Rx = Nothing

    Response.write stroutput

Else
%>
<form action="test.asp?action=vis" method=post>
    <TEXTAREA cols=105 rows=8 name=tekst></TEXTAREA>

    <input type="submit" value="Udfør" name="submit"> </p>

</form>
<%
End If
%>

</body>
</html>
Avatar billede soes Nybegynder
18. september 2003 - 08:20 #1
det er fordi at din side bliver hostet på en Linux/Unix server. Jeg mener at reg exp er noget der er forbeholdt vbscript. chiliasp er en variant af asp (mener chiliasp er skrevet i perl) og understøtter derfor ikke reg exp objectet.
Avatar billede eagleeye Praktikant
18. september 2003 - 08:42 #2
soes det er ikke rigtig..
i Perl  kan man godt bruge regular expressions:
http://www.english.uga.edu/humcomp/perl/regex2a.html

Chili!ASP som bruges til afvikling af ASP koden (hos b-one) understytter ikke Regular Expressions. Spørgsmålet er om det ikke kommer på et tidspunkt.

Alternativt brug denne (som er vinder på www.netcoders.dk i en konkurrance).
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=859&tech_id=1
Den er lavet med string funktion og virker derfor hos b-one.

Her er en samling af de scripts som var med i konkurransen.:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=860&tech_id=1
Avatar billede svjensen Nybegynder
18. september 2003 - 08:47 #3
Du slår som altid til, eagleeye.
Tak for det
Avatar billede svjensen Nybegynder
18. september 2003 - 08:59 #4
Jeg var måske lige hurtig nok.
Mit oprindelige script kunne også tage højde for emailadresser og ftp:// og https:// adresser.

I Dino Patti's script laves en mailadresse (fx soren@vinther-jensen.dk) til en web adresse: http://soren@vinther-jensen.dk

Hvordan kan jeg modificere scriptet til at tage højde for mailadresser?
Avatar billede eagleeye Praktikant
18. september 2003 - 09:12 #5
I denne Else de sætte http::// omkring:


else
  LinkHtml = "<a href='http://" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'><font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
End If


Der kan man evt lave et tjek på om der er et @ i linket og så lave det som mailto hvis der er @ i linket.


else
  LinkHtml = mid(lin,start,slut-start+1)
  if inStr(1,LinkHtml,"@") = 0 then
    LinkHtml = "<a href='http://" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'>"
  else
    LinkHtml = "<a href='mailto:" & mid(lin,start,slut-start+1) &"'>"
  end if 
  LinkHtml = LinkHtml & "<font color='" & link_color & "'>"& mid(lin,start,slut-start+1) & "</font></a>"
End If
Avatar billede svjensen Nybegynder
18. september 2003 - 09:25 #6
Det var den ikke så vild med:

Microsoft VBScript compilation error '800a0408'

Invalid character

dino_patti.asp, line 144

  LinkHtml = mid(lin,start,slut-start+1)

Line 144 er linien lige efter første 'else' i dit forslag
Avatar billede svjensen Nybegynder
18. september 2003 - 09:34 #7
Jeg har lagt filerne op på: http://www.vinther-jensen.dk/test/default.asp
Avatar billede eagleeye Praktikant
18. september 2003 - 09:39 #8
Prøv før at smide det ind i NotePad og copy/paste fra notepad over i din editor... der kommer nemlig nogle gange nogle ekstra karakter med fra ved copy/paste dirkte fra eksperten. Prøv evt at paste as HTML formateret kode hvis du har den mulighed.
Avatar billede svjensen Nybegynder
18. september 2003 - 09:44 #9
Som du vil kunne se så kan den ikke længere finde nogen links overhovedet (bortset fra det der er defineret vha. <a href.....
Avatar billede svjensen Nybegynder
18. september 2003 - 10:36 #10
Sorry, jeg havde lavet en fejl (jeg havde fået slettet en linie ved en fejl).

Scriptet virker efter hensigten.

Jeg takker igen
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

Seneste spørgsmål Seneste aktivitet
1 min siden Libre Office Impress Af Frank i Andre styresystemer
I dag 11:47 VB script Af Jenshentze i Word
I dag 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel