webForumDet fria alternativet

Sammanfoga kod i regexp

ASP

5 svar · 314 visningar · startad av Inferis

Medlem sedan sep. 2000667 inlägg
Frågan#1

Är det nån som vet hur man bäst sammanfogar koden för bildvisning med det andra?
Problemet jag får är att det visas ingen bild, blir bara en länk som slutar med [/img
Denna kod:

function getImage(strText)
  set oRegExp = new regexp
  oRegExp.global=true
  oRegExp.ignorecase = true
  oRegExp.pattern = "\[img]((.|\n)+?)\[/img\]"
  getImage = oRegExp.replace( strText, "<img src='$1'>" )
end function

Vill jag baka in i denna kod:

Function FCode(str)

str = Replace(str,"<","&lt;")
str = Replace(str,VbCrLf,"<br />")

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

objRE.Pattern = "\[(b|/b|i|/i|u|/u)\]"
str = objRE.Replace(str,"<$1>")

objRE.Pattern = "([url]www.[/url][^ ]*[a-z])|([url]http://[/url][^ ]*[a-z])"
str = objRE.Replace(str,"<b>Länk: </b><a href=""$1$2"" target=""_blank"">$1$2</a>")

str = Replace(str,"""www","""http://www")
str = Replace(str,"""http://www""","""www""")

str = Replace(str,"<br""","""")
str = Replace(str,"<br</a> />","</a><br />")

str = Replace(str,"</span><hr""","""")
str = Replace(str,"</span><hr</a> />","</a></span><hr />")

str = Replace(str,"<blockquote><span""","""")
str = Replace(str,"<blockquote><span</a>","</a><span")
str = Replace(str,"</b</a>>","</b>")

objRE.Pattern = "([\w~\-\.]+@[\w~\-\.]+[a-z])"
str = objRE.Replace(str,"<b>Epost: </b><a href=""mailto:$1"">$1</a>")

Set objRE = Nothing

Fcode = str
End Function
Medlem sedan sep. 2000667 inlägg
#2

Kan man på nåt sätt baka in dessa också?

Function FixaTecken(str)
FixaTecken = Replace(Trim(str),"'","''")
End function

' Radbryt efter visst antal tecken
Function br(str)
	Dim antal, tecken, count
	antal = 15  'antal tecken som raden skall vara.

	for tecken = 1 to len(str)
	     count = count + 1
	     Response.Write Mid(str, tecken, 1)
	     If count > antal Then Response.Write "<BR>": count = 0
	next
End Function
Medlem sedan sep. 2000667 inlägg
#3

Det var ingen som kunde eller ville?

Medlem sedan dec. 20003 887 inlägg
#4

Du har missat att escape:a sluthakparantesen på din img-tagg i ditt pattern.

Baka in... det går nog lika bra att anropa funktionerna från FCode.

Medlem sedan mars 20023 561 inlägg
#5

Så här kanske...

Function FCode(str)

str = Replace(str,"<","&lt;")
str = Replace(str,VbCrLf,"<br />")

Set objRE = New regexp
objRE.Global = true
objRE.IgnoreCase = true

objRE.Pattern = "\[(b|/b|i|/i|u|/u)\]"
str = objRE.Replace(str,"<$1>")

objRE.Pattern = "([url]www.[/url][^ ]*[a-z])|([url]http://[/url][^ ]*[a-z])"
str = objRE.Replace(str,"<b>Länk: </b><a href=""$1$2"" target=""_blank"">$1$2</a>")

str = Replace(str,"""www","""http://www")
str = Replace(str,"""http://www""","""www""")

str = Replace(str,"<br""","""")
str = Replace(str,"<br</a> />","</a><br />")

str = Replace(str,"</span><hr""","""")
str = Replace(str,"</span><hr</a> />","</a></span><hr />")

str = Replace(str,"<blockquote><span""","""")
str = Replace(str,"<blockquote><span</a>","</a><span")
str = Replace(str,"</b</a>>","</b>")

objRE.Pattern = "([\w~\-\.]+@[\w~\-\.]+[a-z])"
str = objRE.Replace(str,"<b>Epost: </b><a href=""mailto:$1"">$1</a>")

objRE.pattern = "\[img]((.|\n)+?)\[/img\]"
str = objRE.Replace( str, "<img src='$1'>" )

str = Replace(str, "'","''")

antal = 15  'antal tecken som raden skall vara.

for tecken = 1 to len(str)
     count = count + 1
     Response.Write Mid(str, tecken, 1)
     If count > antal Then Response.Write "<BR>": count = 
next

Set objRE = Nothing

Fcode = str
End Function8

Men jag förstår inte va radbrytnings-delen gör för nytta. Nu bryter den ju mitt i ett ord t ex. Ingen snygg lösning enligt min mening...

Medlem sedan sep. 2000667 inlägg
#6

Det funkar inte riktigt... Det blir bara en länk som slutar med

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)