webForumDet fria alternativet

highligt.regexp

ASP

14 svar · 223 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

jag kör denna sök "funktion" på min hemsida:

objRegExp.Pattern = "([0-9]+) ?(ml|cl|dl|l|stänk) (.*)"
mess = objRegExp.Replace(mess,"$1 <i>$2</i> <a href=""?link=sortiment&ingred=$3&drink=" &id& """>$3</a>"& vbcrlf)

If request.querystring("highlight") <> "" Then
  objRegExp.Pattern = "(" & request.querystring("highlight") & ")" 
  mess = objRegExp.Replace(mess,"<font bgcolor=""#FFF000"">$1</font>") 
end if

problemet är att om jag om jag fyller i "vodka" tex så kommer ju $3 i den översta också bli <font bgcolor=#FF0000>$1</font> I Querystringen.. kan man göra så bara <a href...>[DETTA]</a> blir färgat?

Medlem sedan dec. 20003 887 inlägg
#2

Hur ska du kunna utesluta vodka om du söker på vodka?

Det är ju inte $3, som får en annan färg utan alla "vodka" får ju en annan färg. Du måste göra om ditt andra pattern till att inte matcha >vodka<.

objRegExp.Pattern = "([^>]" & Request.QueryString("highlight") & "[^<]?)"

Det känns som en nödlösning, men det kanske fungerar någorlunda tillfredsställande.

Medlem sedan juni 20019 519 inlägg
#3

Det krashar ändå..

 5 <i>cl</i> <a href="?link=sortiment&ingred<b><font color='#CC0000'>=Vodka
</font></b>&drink=1">Vodka
</a><br>

20 <i>cl</i> <a href="?link=sortiment&ingred=Tomatenjuice
&drink=1">Tomatenjuice
</a><br>

2 Nypor nymalen svart peppar<br>
2 <i>stänk</i> <a href="?link=sortiment&ingred=worcestersås
&drink=1">worcestersås
</a><br>

2 <i>stänk</i> <a href="?link=sortiment&ingred=tabasco
&drink=1">tabasco
</a><br>

2 <i>stänk</i> <a href="?link=sortiment&ingred=nypressad citronsaft
&drink=1">nypressad citronsaft
</a><br>

1 sellerisjälk med alla lager

så kan hela inlägget se ut.. dvs allt är inte länkar

Medlem sedan dec. 20003 887 inlägg
#4

Hmm.. ok, det kanske var jag som missförstod/läste fel. Jag kan begripa att du inte vill att din querystring ska bli helt knäpp :)

objRegExp.Pattern = "([^=])(" & Request.QueryString("highlight") & ")([^&]?)"
mess = objRegExp.Replace(mess,"$1<font bgcolor=""#FFF000"">$2</font>$3")

Tro om jag har förstått dig rätt nu?

Medlem sedan juni 20019 519 inlägg
#5

Tackar :e

Medlem sedan juni 20019 519 inlägg
#6

fast om vi bara skriver odka och inte v... så blir det:

5 <i>cl</i> <a href="?link=sortiment&ingred=V<b><font style="background: #EEE000" color="#EE0000">odka</font></b>
&drink=1">V<b><font style="background: #EEE000" color="#EE0000">odka</font></b>
</a><br>

med engine^:

   objRegExp.Pattern = "([^=])(" & Request.QueryString("highlight") & ")([^&]?)"
   mess = objRegExp.Replace(mess,"$1<b><font style=""background: #EEE000"" color=""#EE0000"">$2</font></b>$3")
Medlem sedan dec. 20003 887 inlägg
#7

Ähh... vadådå? Jag får ju det att fungera.

objRegExp.IgnoreCase = True
Medlem sedan juni 20019 519 inlägg
#8
Function encode(mess)

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.MultiLine = True
mess = Server.HTMLEncode(mess)
Medlem sedan dec. 20003 887 inlägg
#9

Jo, det är klart det knasar sig om du skickar fel ord till den där... och ställer ju till en jäkla massa problem om du använder den där funktionen för sökning. Då får lägga upp en lista på tillåtna sökord :e

Skämt åsido, så kommer jag inte på något vettigt för tillfället. Allt går lösa har jag hört, så det är bara att kämpa på :)

Medlem sedan juni 20019 519 inlägg
#10

har gjort:

   objRegExp.Pattern = "([^=a-z])(" & Request.QueryString("highlight") & ")([^&]?)"

nu om vi skriver odka.. så markeras det inte.. men om vi skriver vodka så fungera det...

Medlem sedan dec. 20003 887 inlägg
#11

Hur i hela friden kan det fungera? :q

Nu känner jag mig förbryllad. Jaja, bra att det fungerar :)

Medlem sedan juni 20019 519 inlägg
#12

det fungera ju inte 100 men den gör så det inte buggar ut helt totalt iallafall

Medlem sedan dec. 20003 887 inlägg
#13

Hehe... nödlösningar... the mother of all... ;)

Medlem sedan juni 20019 519 inlägg
#14

fast om jag använder den så om vi skriver "sprite" så fungera det.. men rite nej.. om du har mer tid kan du tänka till lite :e

Medlem sedan dec. 20003 887 inlägg
#15

Jag tror du får problem hur du än gör om du inte tar med första och/eller sista bokstaven/bokstäverna i sökordet som din mess-variabel ser ut nu. Ivarjefall är ett möjligt pattern för mycket överkurs för mig... :)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)