Avatar billede -sofus- Nybegynder
11. april 2002 - 10:09 Der er 4 kommentarer og
1 løsning

Replace String konflinkt.

I mit forum definere jeg nogle replaces, samt har en linkfinder.

Problemer er bare at der er konflikt imellem 2 af funktionerne så hvis man trykker enter efter man har skrevet et link. tager den <BR> med i urlen:

<%
Function Smilie(TextStr)
    Dim NewStr
    NewStr = TextStr
    NewStr = Replace(NewStr,VbCrLf,"<br>")


' ##### Link finder -  Lasse Jakobsen 2002 ######

      Set objRegExpHTTP1 = New RegExp
      Set objRegExpHTTP2 = New RegExp   
      Set objRegExpEMail = New RegExp
 
      objRegExpHTTP1.Pattern = "(http|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
      objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}\S*)"
      objRegExpEMail.Pattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,3}\S*)"

      objRegExpHTTP1.Global = True
      objRegExpHTTP2.Global = True
      objRegExpEMail.Global = True

      objRegExpHTTP1.IgnoreCase = True
      objRegExpHTTP2.IgnoreCase = True
      objRegExpEMail.IgnoreCase = True

      NewStr    = objRegExpEMail.Replace(TextStr, " <a href='mailto:$1'>$1</a> ")
      NewStr    = objRegExpHTTP1.Replace(NewStr, " <a href='$1$2' target='_blank'>$1$2</a> ")
      NewStr    = objRegExpHTTP2.Replace(NewStr, " <a href='http://$2' target='_blank'>$2</a> ")
       
      Set objRegExpHTTP2 = Nothing
      set objRegExpHTTP1 = Nothing
      Set objRegExpEMail = Nothing


      Smilie = NewStr   
End Function


Der er lige klippet en masse smileys ud i midten.
Avatar billede torbenmelander Nybegynder
11. april 2002 - 10:13 #1
Har selv læst sådanne problemmer ved at sætte et mellemrum før og efter linket <br>:
NewStr = Replace(NewStr,VbCrLf," <br> ")

Ellers skal du bruge en anden link funktion ...
Avatar billede -sofus- Nybegynder
11. april 2002 - 10:15 #2
hmmm virker det her ?

www.eksperten.dk

(:
Avatar billede -sofus- Nybegynder
11. april 2002 - 10:19 #3
Næh,, den giver stadig det samme problem
Avatar billede coltau Juniormester
11. april 2002 - 15:17 #4
Har du prøvet at bytte om på rækkefølgen så denne linie kommer til sidst:

NewStr = Replace(NewStr,VbCrLf,"<br>")

lige før denne linie:
Smilie = NewStr
Avatar billede eagleeye Praktikant
11. april 2002 - 21:59 #5
Function LinkString2(strInput)
Set objRegExpHTTP1 = New RegExp
Set objRegExpHTTP2 = New RegExp
Set objRegExpEMail = New RegExp

objRegExpHTTP1.Pattern = "(http|ftp)(:\/\/[\w\._-]+\.[\w\._-]+\S*)"
objRegExpHTTP2.Pattern = "(^|[^\/])(www[^\.\s]?\.[\w\._-]+\.[A-Za-z]{2,3}[\w\S]*)"
objRegExpEMail.Pattern = "([\w\._-]+@[\w\._-]+\.[A-Za-z]{2,3}\S*)"

objRegExpHTTP1.Global = True
objRegExpHTTP2.Global = True
objRegExpEMail.Global = True

objRegExpHTTP1.IgnoreCase = True
objRegExpHTTP2.IgnoreCase = True
objRegExpEMail.IgnoreCase = True

strOutput = objRegExpEMail.Replace(strInput, " <a href='mailto:$1'>$1</a> ")
strOutput = objRegExpHTTP1.Replace(strOutput, " <a href='$1$2' target='_blank'>$1$2</a> ")
strOutput = objRegExpHTTP2.Replace(strOutput, " $1<a href='http://$2' target='_blank'>$2</a> ")

objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])('>)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(' target=)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2")
objRegExpHTTP2.Pattern = "(<br>|[,.)\]\}])(</a>)"
strOutput = objRegExpHTTP2.Replace(strOutput, "$2$1")

Set objRegExpHTTP2 = Nothing
set objRegExpHTTP1 = Nothing
Set objRegExpEMail = Nothing

LinkString2 = strOutput
End Function
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