Jag har gjort en funktion som konverterar vanlig text inom [URL] och [/URL]-taggarna till länkar (man måste skriva http:// också) läs denna: En liten moddad version av Henrik Malmberg & Tom Svensson parseChatMsg funktion Går det att koda utan RegExp? Jag har inte Regular Expressions på PWS som jag kör på min dator.. det är väl bara att dra in Vbscript engine 5.6... ett snabbhack som kräver massor av felhantering: Tack alla!Konvertering text-->länk
Det är så att funktionen fungerar om man enbart har en länk i strängen som man kollar, men om man har två eller flera länkar fungerar inte konverteringen.
Jag har försökt med lite Do-loopar men det vill inte riktigt fungera.
Här kommer koden jag hittils skrivit (utan Do):
<code>
<% Text = "[URL]http://www.dileno.cjb.net[/URL] är en soft sajt. [URL]http://www.ebtrox.net[/URL] också.."
' Om det finns en länk med i texten så kör vi detta script
If Instr(Text,"http://")>0 Then
Texten = Len(Text)
' Startpositionen för själva länken
Link_start = Instr(Text,"http://")
' Slutpositionen för själva länken
Link_slut = Instr(Text,"[/URL]")
' Hela länken
Link_url = (Link_slut-Link_start)
' Länkens namn
Link_name = Mid(Text,Link_start,Link_url)
' Nu ska vi fixa länken
Link = "" & Link_name & ""
' Början på texten
Text_start = (Texten-((Texten-Link_slut)+Link_url)-6)
' Slutet på texten
Text_slut = (Texten-(Text_start-Link_url-10))
' Hela texten
Text_fixed = Mid(Text,1,Text_start) & Link & Mid(Text,Link_slut+6,Text_slut)
End If %>
<% = Text_fixed %>
</code>
Vore jättetacksam för svar.Sv: Konvertering text-->länk
http://p2p.wrox.com/archive/beginning_php/2002-03/35.asp
visserligen är det för PHP.
Men du kan skapa ett regexp object i asp genom att skriva:
set myreg = New RegExpSv: Konvertering text-->länk
<code>
<%
Function whohoo(sText)
Set oRE = New RegExp
oRE.Global = True
oRE.IgnoreCase = True
oRE.Pattern = "\[url\](.*?)\[\/url\]"
Set oMatches = oRE.Execute(sText)
For Each oMatch In oMatches
sMatch = oMatch.Value
sURLValue = oMatch.SubMatches(0)
If InStr(sURLValue, "http://") = 0 Then
sText = Replace(sText, sMatch, "" & sURLValue & "")
Else
sText = Replace(sText, sMatch, "" & sURLValue & "")
End If
Next
Set oMatches = Nothing
Set oRE = Nothing
whohoo= sText
End Function
%>
<%=whohoo("[URL]www.dileno.cjb.net[/URL] är en soft sajt. [URL]http://www.ebtrox.net[/URL] också..")%>
</code>Sv: Konvertering text-->länk
Sv: Konvertering text-->länk
RegEx underlättar och är väldigt "starkt"
//PutteSv: Konvertering text-->länk
Function LinkCreator(s As String)
Dim arr, i, ret
ret = s
' Om det finns en länk med i texten så kör vi detta script
If InStr(s, "http://") > 0 Then
'lägg till ett mellanslag för att undvika fel
s = " " & s
'Dela upp strängen till en array baserad på url-direktivet
arr = Split(s, "[URL]")
ret = arr(0)
For i = 1 To UBound(arr)
link = "" & Left(arr(i), InStr(arr(i), "[/URL]") - 1) & ""
ret = ret & link & Mid(arr(i), InStr(arr(i), "[/URL]"))
Next i
ret = Replace(Mid(ret, 2), "[/URL]", "")
End If
LinkCreator = ret
End FunctionSv: Konvertering text-->länk
Men hur fixar man så att komman och punkter inte kommer med i länkarna i denna kod??
<% Function Fixmylinks(strText)
Dim Hyperarray, Link, strText2, Check_link, Link_fixed
Hyperarray = Split(strText)
For Each Link in Hyperarray
If Len(Link)>7 Then
If Left(Link,7)="http://" Then
strText2 = strText2 & "" & Link & " "
ElseIf Instr(Link,"@")>1 Then
strText2 = strText2 & "" & Link & " "
Else
strText2 = strText2 & Link & " "
End If
Else
strText2 = strText2 & Link & " "
End If
Next
Fixmylinks = strText2
End Function %>