webForumDet fria alternativet

regexp + escape-tecken

ASP

3 svar · 292 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

har denna kod:

Function colorSearch(strText, SearchWords)
	Dim re, strResult, arrKeyWords, i
	Set re = New RegExp
	re.global=true
	re.ignorecase=true

	arrKeyWords = Split(Replace(SearchWords, " ", ""), ",")
	strResult = strText
	
	For i = 0 To UBound(arrKeyWords)
	    re.pattern = arrKeyWords(i)
	    strResult = re.replace(strResult,"<span class=""bgred"">" & arrKeyWords(i) & "</span>")
	Next
	
	colorSearch = strResult
End Function

koden färgar sökord i en sökning, problemet är att koden kraschar om man tex. skriver ett + i söksträngen.
hur escapear jag sådana tecken?
sökningen tillåter att man skriver t.ex. - och + för att sortera resultatet så jag kan inte bara ta bort dessa tecken ur söksträngen!

Medlem sedan nov. 20017 144 inlägg
#2

\+

Medlem sedan apr. 20031 660 inlägg
#3

HEJ!

Vad menar du med "kraschar"?

Fungerar inte regexp eftersom + betyder något annat där?
(\ escape:ar tecken i regexp)

Varför inte då ta bort + ur SearchWords-strängen, eftersom du ändå inte kommer att kunna märka ordet "+cykel" i en text, eftersom det inte står med plustecknet där?

Ang minus:
De orden får du ju INTE träff på, de kan du väl helt ta bort ur SearchWords?

Medlem sedan juni 20003 076 inlägg
#4

J.N. skrev:

Varför inte då ta bort + ur SearchWords-strängen, eftersom du ändå inte kommer att kunna märka ordet "+cykel" i en text, eftersom det inte står med plustecknet där?

Jo men visst! :bire
Jag som tänkte lite galet bara, jag fick för mig att SearchWords användes för att hämta posterna ur databasen också men så är ju självklart inte fallet!

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