webForumDet fria alternativet

RegExp-fråga

ASP

4 svar · 147 visningar · startad av Prometheus

Medlem sedan mars 2001363 inlägg
Frågan#1

Håller på att bygga ett forum och tänkte fixa så att länkarna formateras.
Har tittat på Vides lektion och byggt nedanstående, tycker ni det ser OK ut eller ska jag rätta till någe? (Har inte testat än...Answer("MessBody") är inlägget som ni kanske förstår...)

Dim theString
theString = Answer("MessBody")
Set objRegExp = New regexp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "(http://[a-zA-Z_0-9]+\.\S{2,})|(www\.\[a-zA-Z_0-9]{2,}\.\S+)|([a-zA-Z_0-9]+@[a-zA-Z_0-9]\.\S+)"
Set theMatches = objRegExp.Execute(theString)
theString = objRegExp.Replace(theString,"<a href='$1' class='5'>$1</a><a href='http://$2' class='5'>$2</a><a href='mailto:$3' class='5'>$3</a>")
Response.Write(theString)

/Mattias

Medlem sedan mars 2001363 inlägg
#2

Hade visst glömt att deklarera nån variabel... :r
men det var ju inte det som var det viktiga...

/Mattias

[Redigerat av Prometheus den 12 maj 2001]

Medlem sedan mars 2001363 inlägg
#3

Okej....
hela funktionen jag använder för att formatera inlägg i mitt forum ser nu ut så som nedan. Problemet...bara länkar som börjar med "http://" blir formaterade. Nån som ser en lösning?

	Function FormateraInlagg(strTxt)
		strTxt = Replace(Trim(strTxt), "<", "")
		strTxt = Replace(strTxt, ">", "")
		strTxt = Replace((strTxt), "[fet]", "<b>")
		strTxt = Replace((strTxt), "[/fet]", "</b>")
		strTxt = Replace((strTxt), "[kursiv]", "<i>")
		strTxt = Replace((strTxt), "[/kursiv]", "</i>")
		strTxt = Replace((strTxt), "[citat]", "<br><font color='#ff6600'>")
		strTxt = Replace((strTxt), "[/citat]", "</font><br>") 
		strTxt = Replace((strTxt), ":)", "<img src='forum/smiley1.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ":(", "<img src='forum/smiley2.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ":p", "<img src='forum/smiley3.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ":D", "<img src='forum/smiley4.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), "Z:(", "<img src='forum/smiley5.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ":o", "<img src='forum/smiley6.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ":\", "<img src='forum/smiley7.gif' width='15' height='15'>")
		strTxt = Replace((strTxt), ";) ", "<img src='forum/smiley8.gif' width='15' height='15'>")
		Dim objRegExp, theMatches
		Set objRegExp = New regexp
		objRegExp.Global = True
		objRegExp.IgnoreCase = True
		objRegExp.Pattern = "(http://[a-zA-Z_0-9]+\.\S{2,})&#0124;(www\.\[a-zA-Z_0-9]{2,}\.\S+)&#0124;([a-zA-Z_0-9]+@[a-zA-Z_0-9]\.\S+)"
		Set theMatches = objRegExp.Execute(strTxt)
		strTxt = objRegExp.Replace(strTxt,"<a href='$1' class='5'>$1</a><a href='http://$2' class='5'>$2</a><a href='mailto:$3' class='5'>$3</a>")
		FormateraInlagg = strTxt
	End Function

/Mattias

Medlem sedan mars 2001363 inlägg
#4

Oops, jag använder tydligen samma kommando som i wF för citat, därför ser det lite knasigt ut ovan....

Medlem sedan mars 2001363 inlägg
#5

Problemet löst...behövde bara ändra ett par småsaker i mönstret. :)

/Mattias

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)