webForumDet fria alternativet

Highlightfunktion

ASPur ASP

7 svar · 380 visningar · startad av Meng

Medlem sedan feb. 2003549 inlägg
Frågan#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
Medlem sedan juni 200032 969 inlägg
#2

Hur är det med sökkunskaperna?

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

Medlem sedan feb. 2003549 inlägg
#3

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

Medlem 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..

Medlem 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

Medlem 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.

Medlem sedan juni 200032 969 inlägg
#7

Erik Juhlins funktion fungerar klockrent.

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

Medlem 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 =)

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