webForumDet fria alternativet

Highlightfunktion

7 svar · 380 visningar · startad av Meng

MengMedlem sedan feb. 2003549 inlägg
#1

Kan man på nåt sätt göra nåt linknade nedan:
t ex:
namn: ringresterevägen 4
Exempel på önskad funktion:

highlight = "r"

[i]Funktion[/i](RecSet("namn"),<B>" & highlight & "</B>)

Output: [b]r[/b]ing[b]r[/b]este[b]r[/b]evägen 4
@ndersMedlem sedan juni 200032 969 inlägg
#2

Hur är det med sökkunskaperna?

Exempel: http://www.webforum.nu/showthread.php?s=&postid=479910#post479910

MengMedlem sedan feb. 2003549 inlägg
#3

Det där hittade jag faktiskt, men jag fattar inte hur jag använder det...

MengMedlem sedan feb. 2003549 inlägg
#4
sSearchWord = Request.Querystring("sokord")
sDatabaseString = Request.Querystring("falt")

Function MarkSearchWord(ByVal sDatabaseString, _ 
    ByVal sSearchWord)
    
    Dim objRegExp
    
    Set objRegExp = New RegExp
    objRegExp.Global = True
    objRegExp.IgnoreCase = True
    objRegExp.Pattern = "(" & sSearchWord & ")"
    
    MarkSearchWord = objRegExp.Replace(sDatabaseString, "<b>$1</b>")
    
    Set objRegExp = Nothing
    
End Function

Skriver ut med:

<%=MarkSearchWord(RecSet(sDatabaseString))%>

Men det funkar ej..

MengMedlem sedan feb. 2003549 inlägg
#5

Okej detta funkade ju..

visafalt = Request.Querystring("falt")
sokord = Request.Querystring("sokord")

dim rakna
Function PunchWord(visafalt,sokord)
rakna = 0
	
	Set objRegExp = New RegExp
		objRegExp.Global = True
		objRegExp.IgnoreCase = true
		objRegExp.Pattern = "" & Replace(sokord,".","\.")

		Set matchesa = objRegExp.Execute(visafalt)
			For Each matcha In matchesa
				visafalt = Replace(visafalt,matcha,"<b>" & matcha & "</b>")
rakna = rakna + 1
			Next
		Set matchesa = Nothing
		
	Set objRegExp = Nothing
	PunchWord = visafalt
End Function
<%=PunchWord(RecSet(visafalt),sokord)%>

http://www.webforum.nu/showthread.php?s=&postid=479944#post479944

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#6

Punchword funktionen är inte särskilt smart.
1. Att få tillbaka en matchcollection, loopa igenom och replacea är ganska dumt prestandamässigt och snygghetsmässigt om man jämför med att bara replacea direkt med regexp.
2. Om man använder den för att söka och söker efter t.ex. R så kommer alla r i texten bli till versaler.

@ndersMedlem sedan juni 200032 969 inlägg
#7

Erik Juhlins funktion fungerar klockrent.

På vilket sätt fungerar det inte för dig, Meng?

MengMedlem sedan feb. 2003549 inlägg
#8

Jag vet @nders! jag började använda den också nu har bara inte tänkt på att skriva in det här. Det är mycket bättre att säga att värdet skal vara mellan <b>och </b> än att recca ut det på båda sidor om värdet för om man t ex söker på "b" och den funna posten har "bbbbb" så går det helt galet med Punchword, varför kan jag inte förklara men det kan säkert ni.

Red. Såg att Erik redan förklarat det lite mer proffesionellt ovan =)

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