webForumDet fria alternativet

skapa länkar med regexp

ASP

8 svar · 604 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hejsan!
Denna kod har jag:

strText = Replace(server.HTMLEncode(strText),vbCrlf,"<br>")
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "([url]http://[/url](\w|\.|/|-|\?|=|&|;|~){1,}\w*)"
strText = objRegExp.Replace(strText,"<a href='$1' target='main'>$1</a>")

Men, när en användare skriver in sin länk tex: www.webforum.nu.. så öppnas den i samma fönster, istället för i target='main' som det står i koden.. varför?

Mvh Thomsson

Medlem sedan apr. 20003 174 inlägg
#2

Din kod här ovan ska konvertera länkar med http:// i början,
den bör inte reagera på länkar med www i början.

Har du fler regexp-funktioner på sidan?

Medlem sedan aug. 2002600 inlägg
#3

Palle skrev:

Din kod här ovan ska konvertera länkar med http:// i början,
den bör inte reagera på länkar med www i början.

Har du fler regexp-funktioner på sidan?

Okej, nej det har jag inte. Men ska testa med denna funktion nu tänkte jag:

<%
Function Free(text)
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
text = Server.HTMLEncode(text)

objRegExp.Pattern = "\[.url=(&quot;)?([url]http://[/url])?(.*?)\1\](.*?)\[\/url\]"
text = objRegExp.Replace(text,"<a href=http://$3 target=""_blank"">$4</a>")
%>

Vad tros om den? :)

Medlem sedan aug. 2002600 inlägg
#4

Så här har jag lagt upp den koden nu:

Function byt(strText) 
strText = Replace(server.HTMLEncode(strText),vbCrlf,"<br>")
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "\[.url=(&quot;)?([url]http://[/url])?(.*?)\1\](.*?)\[\/url\]"
strText = objRegExp.Replace(strText,"<a href=http://$3 target=""main"">$4</a>")

Men, den skriver ut [url ]www.adress.se[/url ] utan att länka. why?

Medlem sedan feb. 20032 027 inlägg
#5

Denna länkar och öppnar i nytt fönster

objRegExp.Pattern = "&lt;link&gt;(.*?)&lt;/link&gt;"
sText = objRegExp.Replace(sText,"<a class=""chattText"" href=""$1"" target=""_blank"">$1</a>")
Medlem sedan apr. 20003 174 inlägg
#6

why?

Du har ju angett att länkarna ska vara enligt detta syntax: länktext[/url],

Medlem sedan apr. 20003 174 inlägg
#7

Några exempel:

Reagerar på.. www.webforum.nu

[red]objRegExp.Pattern = "(www\.(\S)(\S+))"
   text = objRegExp.Replace(text, "<a href=""$1"" target=""_blank"">")[/red]

Reagerar på.. http://www.webforum.nu

[red]objRegExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
   text = objRegExp.Replace(text, "<a href=""$1"" target=""_blank"">")[/red]

Reagerar på.. [url]http://www.webforum.nu[/url]

[red]objRegExp.Pattern = "\[url\](.*?)\[\/url\]"
text = objRegExp.Replace(text, "<a href=""$1"" target=""_blank"">")[/red]

Reagerar på.. [url=http://www.webforum.nu]Länktext[/url]

[red]objRegExp.Pattern = "\[url=(.*?)\](.*?)\[\/url\]"
   text = objRegExp.Replace(text, "<a href=""$1"" target=""_blank"">")[/red]
Medlem sedan juni 2005584 inlägg
#8

hur skulle koden se ut om jag vill att den skall reagera på både

Medlem sedan dec. 19996 721 inlägg
269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)