webForumDet fria alternativet

Hjälp med htmlformatering och replacefunktion

14 svar · 2 007 visningar · startad av bikic

bikicMedlem sedan juni 2006261 inlägg
#1

Hej!

Jag har en utmaning vad gäller att ersätta vissa htmlformateringar när man postar ett inlägg, likt detta forum.

Jag har en textarea med en htmleditor, där man kan lägga till bold, italic osv. Dessa läggs in på samma sätt som man gör i detta forum med [bold][/bold], [italic][/italic] osv.

Dessa är ju inga problem att ersätta med en enkel replacefunktion i asp. Men om jag lägger till en länk [URLLL="http://www.webforum.nu"]länknamn[/URLLL] s blir det inte lika lätt att ersätta.

Hur kan man fixa detta? Kan man även ha flera attributer i en sådan funktion. Exempel: [URLLL link="" title="" id=""]länknamn[/URLLL]

Mycket tacksam för svar!

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Sök på regex på forumet så kommer du få allt du behöver.

bikicMedlem sedan juni 2006261 inlägg
#3

Hittade ett inlägg här på sidan! Kanon! Exakt vad jag ville ha.

bikicMedlem sedan juni 2006261 inlägg
bikicMedlem sedan juni 2006261 inlägg
#5

Är tillbaka i ämnet.

Hittade som sagt detta på en sida, tack vare länken ovan.


<%
Function Reggex(strString, strPattern, strReplace)

	Dim RE: Set RE = New RegExp

	With RE
		.Pattern = strPattern
		.Global = True
		Reggex = .Replace(strString, strReplace)
	End With
	
End Function

Function bbC(strString)
	strString = Replace(strString, "&", "&amp;")
	strString = Replace(strString, "<", "&lt;")
	strString = Replace(strString, ">", "&gt;")
	strString = Replace(strString, """", "&quot;")

	strString = Reggex(strString, "\[url=([^\]]+)\](.*?)\[\/url\]", "<a href=""$1"" title="""">$2</a>")

	bbC = strString
End Function
%>

[url=http;//www.nicke.com]Besök Nickes sida[/url]

=

<a href="http;//www.nicke.com">Besök Nickes sida</a>

Jag har ett litet dilemma. Om man av någon anledning lyckas få in ett mellanrum (space) direkt efter eller innan så ersätter den inte alls.

Vad beror detta på och hur kan man lösa detta?

voigtann1Medlem sedan juni 20019 519 inlägg
#6

Vad är det för sträng du har problem med, och kör _ eller liknande på ditt exempel gjorde ett snabbt test om jag förstod dig: http://voigt.se/sandbox/wf/bikic/regex/ är det detta du hade problem med?

bikicMedlem sedan juni 2006261 inlägg
#7

Nej inte så, så här:

[URLL=http://www.webforum.nu] länk till webforum.nu [/URLL]

Om man har mellanrum innanför URL-taggen.

voigtann1Medlem sedan juni 20019 519 inlägg
#8

fungera för mig: http://voigt.se/sandbox/wf/bikic/regex/ har inte gjort några ändringar på båda funktionerna. Är du säker på att det är mellanslag som ställer till det för dig? Var är det för sträng exempel som inte fungera för dig?

bikicMedlem sedan juni 2006261 inlägg
#9

Nu när du säger det så är det inte mellanrum utan enterslag som ställer till det.

[en-funktion=#action]

text text

[/en-funktion]

Nu måste det skrivas:

[en-funktion=#action]text text[/en-funktion]

voigtann1Medlem sedan juni 20019 519 inlägg
#10

Det är inte konstigt

. => Match any single character that is not a line break character.

byt ut . till [\s\S]

bikicMedlem sedan juni 2006261 inlägg
#11

Snyggt! Tack o bock!

Ha en trevlig fredag!

bikicMedlem sedan juni 2006261 inlägg
#12

Om man nu vill lägga till ytterligare en attribut - hur gör man då?

Ex.

[link=http://www.webforum.nu title=ett bra forum]webforum.nu[/link]

voigtann1Medlem sedan juni 20019 519 inlägg
#13

Är det alltid ett attribut?

bikicMedlem sedan juni 2006261 inlägg
#14

Nej det behöver det nödvändigtvis inte vara.

voigtann1Medlem sedan juni 20019 519 inlägg
#15
strString = Reggex(strString, "\[url=(.*?)(?: title=(.*?))?\](.*?)\[\/url\]", "<a href=""$1"" title=""$2"">$3</a>")
124 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)