Använd dig av LCase(sökord) när du gör sökningen.
/r hmm... jag kanske missförstog mig själv där ;) Det är det du kollar mot som du ska ändra... Eller så visar du hur du genomför sökningen, så kanske du kan få ett annat tips.
13 svar · 265 visningar · startad av Addeladde
Hej
Jag har den här koden för att skriva ut en beskrivning av varje sida som presenteras av sökningen. Koden tar det man sökt på och gör de feta i beskrivningen. Problemet är att det är case sensitiv. Kan man ändra det på något sätt så att om mn söker på "Projekt" så gör den även "projekt" fet och inte bara "Projekt". Det ska även funka med "PROJEKT"
arrSokord = Split(sSearchString)
beskrivning = TRIM(util.TruncateToWhitespace(oRS("Characterization"), 200))
FOR I = 0 TO UBound(arrSokord)
beskrivning = replace(beskrivning, arrSokord(i), "<span class=""mallFet"">"&arrSokord(i)&"</span>")
NEXT
Använd dig av LCase(sökord) när du gör sökningen.
/r hmm... jag kanske missförstog mig själv där ;) Det är det du kollar mot som du ska ändra... Eller så visar du hur du genomför sökningen, så kanske du kan få ett annat tips.
Så här har jag tänkt:
Om jag söker på: Projekt aspmodul
Och så har jag besrivningen:
Vi har idag ett mycket intressant projekt som kommer att börja nästa vecka. Det Handlar om att bygga en ASPmodul
När jag kört igenom min funktion så ska besrivningen se ut så här:
Vi har idag ett mycket intressant projekt som kommer att börja nästa vecka. Det Handlar om att bygga en ASPmodul
Du får ta innehållet och göra LCase() på det du ska söka igenom, samt LCase() på sökordet/en. UCase() går lika bra :)
Mycket mer hjälp än så kan jag inte ge dig, eftersom jag inte vet hur du söker igenom texterna. Jag kan testa något annat...
astrWords = Split([i]sökordssträng[/i], " ")
strSearch = astrWords(0)
If Ubound(astrWords) > 1 Then
For i = 1 To UBound(sökordssträng) - 1
strSearch = strSearch & "|" & astrWords(i)
Next i
End If
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "(" & strSearch & ")"
strSearchResult = objRegExp.Replace([i]textendusökeri[/i], "<b>$1</b>")
Response.Write strSearchResult
Kanske, kanske inte...
BEskrivningen finns bara i en variabel med namnet beskrivning
astrWords = Split([i]sökordssträng[/i], " ")
strSearch = astrWords(0)
If Ubound(astrWords) > 1 Then
For i = 1 To UBound(sökordssträng) - 1
strSearch = strSearch & "|" & astrWords(i)
Next i
End If
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "(" & strSearch & ")"
strSearchResult = objRegExp.Replace([b]beskrivning[/b], "<b>$1</b>")
Response.Write strSearchResult
Tack Engine^ :bire
koden funkar perfekt om man tar bort i:et efter next.
Om man har ett ord som är mindre en tre bokstäver så vill jag inte att det fetmarkerar det. Söker man tex. på bara en bokstav blir det feta bokstäver nästan överallt.
Jag försökte med det här men det fungerade inte
If Ubound(astrWords) > 1 Then
For i = 1 To UBound(sSearchString) - 1
IF len(astrWords(i)) > 2 THEN
strSearch = strSearch & "|" & astrWords(i)
END IF
Next
End If
Ingen som kan?
Lustigt... det trodde jag skulle ha fungerat...
If Len$(Cstr(astrWords(i))) > 2 Then
strSearch...
End If
Nu är det väl något uppenbart, som man inte tänker på ;)
Nej det fungerar inte
If Ubound(astrWords) > 1 Then
For i = 1 To UBound(sSearchString) - 1
If Len(Cstr(astrWords(i))) > 2 Then
strSearch = strSearch & "|" & astrWords(i)
End If
Next
End If
I din kod så får jag ett felmeddelande på $. Tar jag bort det fungerar det ändå inte.
If Len[b]$[/b](Cstr(astrWords(i))) > 2 Then
strSearch...
End If
Kom på ett till problem den tar bara första ordet och fetmarkerar inte allihop.
Tex. som sokfranse är projekt villtomt
så fetmarerar den bara projekt
Gjorde så här och nu funkar allt.
astrWords = Split(sSearchString, " ")
FOR i2 = 0 to Ubound(astrWords)
IF len(astrWords(i2)) > 3 THEN
strSearch = astrWords(i2)
If Ubound(astrWords) > 1 Then
For i = 1 To UBound(sSearchString) - 1
strSearch = strSearch & "|" & astrWords(i)
Next
End If
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "(" & strSearch & ")"
beskrivning = objRegExp.Replace(beskrivning, "<span class=""mallFet"">$1</span>")
END IF
NEXT
Trevligt!