webForumDet fria alternativet

2 funktioner

ASPur ASP

11 svar · 456 visningar · startad av asp

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

Hej, jag efterlyser två stycken funktioner.

#1. Allt mellan < och > tas bort.

#2. Gör <br> på alla vbCrLf men dock inte mellan < och >.

Medlem sedan okt. 20031 000 inlägg
#2

#1: Hm... låter som Regular Expression är nått för dig, har tyvärr inte själv satt mig in i det så jag kan inte hjälpa dig tyvärr.

#2: replace(TEXTEN,vbcrlf,"<br>")

Medlem sedan maj 200010 687 inlägg
#3

Båda kräver RegExp.
Ettan är ganska enkel:

Function RemoveHTML(ByVal sString)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.Pattern = "<[^>]*>"
	RemoveHTML = objRegExp.Replace(sString, "")
	Set objRegExp = Nothing
End Function

Tvåan är dock lite mer krånglig...

Function BreakNonHTML(ByVal sString)
	Dim objRegExp, mc, mi, lLastIndex, sMatch, sBefore, vMatch, i
	
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.Pattern = "<[^>]*>"
	Set mc = objRegExp.Execute(sString)
	Set objRegExp = Nothing
	
	ReDim vMatch(mc.Count * 2)
	lLastIndex = 1
	For Each mi In mc
		sBefore = Mid(sString, lLastIndex, mi.FirstIndex - lLastIndex + 1)
		sMatch = mi.Value
		vMatch(i) = Replace(sBefore, vbCrLf, "<br>")
		vMatch(i + 1) = sMatch
		
		lLastIndex = mi.FirstIndex + Len(sMatch) + 1
		i = i + 2
	Next 'mi
	vMatch(i) = Replace(Mid(sString, lLastIndex), vbCrLf, "<br>")
	
	Set mi = Nothing
	
	BreakNonHTML = Join(vMatch, "")
End Function
Medlem sedan aug. 2002733 inlägg
#4

Grymt mkt tack!

Medlem sedan aug. 2002733 inlägg
#5

Jag får detta.

Körningsfel i Microsoft VBScript (0x800A005E)
Ogiltig användning av Null: 'Replace'

På denna rad: vMatch(i) = Replace(Mid(sString, lLastIndex), vbCrLf, "<br>")

Såhär skriver jag ut.

makeBr(objRs("brodtext"))

Medlem sedan juni 200032 967 inlägg
#6

Om fältet brodtext är null så måste du hantera det på något sätt. Exempel:

response.write makeBr("" & objRs("brodtext"))
Medlem sedan aug. 2002733 inlägg
#7

Tack, det fungerar. Men oavsett om fältet var tomt eller inte fick jag felmeddelande, konstigt!

Medlem sedan aug. 2002733 inlägg
#8

Hmm en fråga..

Den andra funktionen var lite fel, jag beskrev fel.

Det jag vill är att den inte skall lägga till <br> på varje rad om det är mellan < och > utan att den skall inte lägga till <br> om det är html kod.

t.ex. så krånglar det när man skapar en tabell...

Medlem sedan maj 200010 687 inlägg
#9

Koden jag skrev lägger till <br> om det inte är mellan < och >.

Hur menade du?

Medlem sedan aug. 2002733 inlägg
#10

Jo, det är bra. Men t.ex. det blir buggigt vid detta exempel. (Jag vet att inte funktionen klarar av det.)

Här är texten:

<table>
  <tr>
  <td>Hej</td>
  <td>Då!</td>
  </tr>
</table>

Såhär blir det:

<table><br>
  <tr><br>
  <td>Hej</td><br>
  <td>Då!</td><br>
  </tr><br>
</table><br>

Förstår du? En smart lösning kanske skulle vara att skriva (kod) och (/kod) runt HTML-kod när den innehåller flera rader kod.

Medlem sedan maj 200010 687 inlägg
#11

Varför inte se till att texterna inuti tabellcellerna innehåller <br>-radbrytningar då?

Medlem sedan aug. 2002733 inlägg
#12

Hmm.. vad menar du?

Kanske man skall göra så att det inte blir <br> på de rader som börjar på < och slutar på >. ?

134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)