webForumDet fria alternativet

Söka, LCase, markera med fet stil?

ASP

9 svar · 320 visningar · startad av henrik2001

Medlem sedan dec. 2000241 inlägg
Frågan#1

Tja!

Håller på med en skivdatabas, som man ska kunna söka i, bland låtlistorna t.ex.

Alltså, man söker på t.ex "love", då blir adressen sok.asp?high=love, och "strHighLight" innehåller ordet "love".
"sok.asp?high=love" innehåller alltså en lista med sökresultat, och från den sidan kan man komma vidare till enskilda poster, med adressen "visa_info.asp?id=390&high=love"

visa_info.asp:

strSongs = "01 - I Love You"<br>02 - Låt2"

strHighLight = Request.Querystring("high")
strMedFett = "<b>" & strHighLight & "</b>"
strSongs = Replace(strSongs,strHighLight,strMedFett)

Om en låt heter "I Love You" (alltså med stora bokstäver), så funkar det inte, om den däremot heter "I love You", så funkar det!

Det är väl något med LCase(), men har inte lyckats klura ut det!

Hjälp behövs!
Tack På Förhand!

//Henrik

Medlem sedan juni 20019 519 inlägg
#2

hade använt regular expresion för detta har gjort ett sådant script:
http://voigtan.cjb.net/voigt/view.asp?fil=sok.asp&title=En Sök-Funktion i en Sökmotor.

Medlem sedan nov. 2002105 inlägg
#3

Om du vill köra med LCase så måste du lägga på detta på både strängen som skall sökas igenom samt den strängen du söker.

Replace(LCase(strSongs),LCase(strHighLight),strMedFett)

Annars är ett Reg Exp snyggare.

Medlem sedan juni 20019 519 inlägg
#4

fast då ersätts "This will be the night" (exempel) så söker du på "this" då kommer resultatet blir: "this will be the night" alltså inte stort T :e min lämnar det som det är :e (tror jag)

Medlem sedan nov. 2002105 inlägg
#5

Nej inte om du skippar LCase på strMedFett.

Medlem sedan dec. 2000241 inlägg
#6

Med den här koden visas sökordet i fet stil, men allt blir med små bokstäver, som voigtann1 skrev...
Det ska inte spela någon roll om man skriver sökordet med små eller stora eller blandade bokstäver.

strSongs = rs("Låtar")

strHighLight = Request.Querystring("high")
strMedFett = "<b>" & strHighLight & "</b>"

strSongs = Replace(LCase(strSongs),LCase(strHighLight),strMedFett)

Exempel:

strHighLight = "hugger" (sökordet alltså)

01 - kom
02 - kom ihåg mig
03 - i stockholm
04 - du får mig
05 - du gamla fria nord
06 - måste vara två
07 - aldrig riktigt slut
08 - <b>hugger</b> i sten
09 - söndag 13.3.99
10 - tanken som räknas
11 - nästan perfekt
12 - fria vägar ut
----------------------------------------------------
strHighLight = "HUGGER" (sökordet alltså)

01 - kom
02 - kom ihåg mig
03 - i stockholm
04 - du får mig
05 - du gamla fria nord
06 - måste vara två
07 - aldrig riktigt slut
08 - <b>HUGGER</b> i sten
09 - söndag 13.3.99
10 - tanken som räknas
11 - nästan perfekt
12 - fria vägar ut

I databasen börjar alla ord med stor bokstav!

Alltså ska det se ut så här, oavsett om sökordet är skrivet med stora, små eller blandade bokstäver:

...
08 - <b>Hugger</b> I Sten
...

Behöver hjälp!

//Henrik

Medlem sedan dec. 200012 464 inlägg
#7
strSongs = Replace(strSongs,strHighLight,strMedFett,1,-1,1)

Du behöver regexp om det skall bli riktigt bra.

Medlem sedan dec. 2000241 inlägg
#8

okej...men vad betyder ettorna på slutet?

Medlem sedan juni 200032 967 inlägg
#9

Replace()

Microsofts VBScript-referens är ett ypperligt ställe.

mvh,

Medlem sedan dec. 2000241 inlägg
#10

Tack! Nu funkar det, tog voigtann1:s script.

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)