webForumDet fria alternativet

Hur skriva regexp

ASP

9 svar · 401 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Hur skriver man en regexp om man ex vill ersätta
<fet></fet> med <b></b> , <rubrik></rubrik> med <font size=16pt></font> och <text></text> med <font size=10pt></font>
i en textmassa

Medlem sedan nov. 20017 144 inlägg
#2

Du behöver inte ha regexp till det.

 function makeHtml(byVal inpt)
	Dim inp:inp=inpt
		inp = Replace(inp,"</fet>","</b>",1,-1,1)
		inp = Replace(inp,"<fet>","<b>",1,-1,1)
		inp = Replace(inp,"</rubrik>","</font>",1,-1,1)
		inp = Replace(inp,"<rubrik>","<font size=6>",1,-1,1)
		inp = Replace(inp,"</text>","</font>",1,-1,1)
		inp = Replace(inp,"<text>","<font size=3>",1,-1,1)
	makeHtml = inp
end function
Medlem sedan apr. 20022 743 inlägg
#3

Dock om man använder Jespers förslag så kommer sidan att se lite konstig ut om man glömmer att stänga en tagg. Skriver användaren t.ex. bara <b> så kommer ju all text efter att vara fet.

Medlem sedan feb. 20032 027 inlägg
#4

Har tänkt att ha en inforuta som beskriver taggarna som användaren ser jämte textrutan. Skulle användaren glömma att stänga en tagg så är det bara att ändra :-)

Poffe skrev:

Dock om man använder Jespers förslag så kommer sidan att se lite konstig ut om man glömmer att stänga en tagg. Skriver användaren t.ex. bara <b> så kommer ju all text efter att vara fet.

Medlem sedan feb. 20032 027 inlägg
#5

Jesper T skrev:

Du behöver inte ha regexp till det.

 function makeHtml(byVal inpt)
	Dim inp:inp=inpt
		inp = Replace(inp,"</fet>","</b>",1,-1,1)
		inp = Replace(inp,"<fet>","<b>",1,-1,1)
		inp = Replace(inp,"</rubrik>","</font>",1,-1,1)
		inp = Replace(inp,"<rubrik>","<font size=6>",1,-1,1)
		inp = Replace(inp,"</text>","</font>",1,-1,1)
		inp = Replace(inp,"<text>","<font size=3>",1,-1,1)
	makeHtml = inp
end function

Hur gör man om man ex vill kunna infoga bild genom att skriva in webadressen på den och visa bilden med <bild></bild>

ex:<bild>https://www.sida.com/bild.gif</bild>
och skapa en länk med <www>https://www.webforum.nu</www>

Medlem sedan dec. 20025 483 inlägg
#6

Litet enkelt skulle man kanske kunna använda:

dim re: set re	= new regexp

re.ignorecase	= true
re.global	= true
re.pattern	= "<bild>(.*?)</bild>"
re.replace([i]str[/i], "<img src=""$1"">")

set re		= nothing

Samma visa med ditt andra exempel.

:)

Medlem sedan feb. 20032 027 inlägg
#7

Peter S skrev:

Litet enkelt skulle man kanske kunna använda:

dim re: set re	= new regexp

re.ignorecase	= true
re.global	= true
re.pattern	= "<bild>(.*?)</bild>"
re.replace([i]str[/i], "<img src=""$1"">")

set re		= nothing

Samma visa med ditt andra exempel.

:)

Jag får att det går inte använda parenteser när en sub anropas, man måste ju ha parenteser när man kör en replace

dim re: set re	= new regexp

re.ignorecase	= true
re.global	= true
re.pattern	= "<bild>(.*?)</bild>"
re.replace(str, "<img src=""$1"">")
re.pattern	= "<webb>(.*?)</webb>"
re.replace(str, "<a href=""$1"">$1</a>")

set re		= nothing
Medlem sedan dec. 20025 483 inlägg
#8

replace()-raderna bör se ut så här istället:

str = re.replace(...

Om detta löser problemet vet jag inte. Vilken rad får du felmeddelandet på?

:)

Medlem sedan feb. 20032 027 inlägg
#9

Peter S skrev:

replace()-raderna bör se ut så här istället:

str = re.replace(...

Om detta löser problemet vet jag inte. Vilken rad får du felmeddelandet på?

:)

Det är re.replace(str, "<img src=""$1"">")
jag får fel på och det gick inte att använda Peter S-s förslag

Medlem sedan feb. 20032 027 inlägg
#10

min regexp är nu

dim re: set re	= new regexp

re.ignorecase	= true
re.global	= true
re.pattern	= "<bild>(.*?)</bild>"
txtText=re.Replace(txtText, "<img src=""$1"">")
re.pattern	= "<webb>(.*?)</webb>"
txtText=re.Replace(txtText, "<a href=""$1"">$1</a>")

set re		= nothing

jag får Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer
/dev/test.asp, line 101 när jag använder <%=replace(re(replace(makeHtml(request.form("txtText")),vbCrLf,"<br>")))%>

har även testat med <%=replace(txtText(replace(makeHtml(request.form("txtText")),vbCrLf,"<br>")))%>

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)