Det låter som en skoj liten funktion och jag antar att du även vill ha det så att två närliggande träffar inte ska delas upp?
Text: En massa text med en hel del extra text och text, men inte bara simpel text 12 13 14
Sök: text
Resultat: En massa text med en... ...del extra text och text, men inte... ...bara simpel text 12 13...
Det orkar jag dock inte sitta och göra ;)
Men den enklare varianten har jag ett förslag på
Function GetResultText(strText, strSearch)
Dim reObj, astrMatches, strResult
Set reObj = New RegExp
reObj.Global = True
reObj.IgnoreCase = True
reObj.Pattern = "(\S*\s){0,2}" & strSearch & "(\s\S*){0,2}"
Set astrMatches = reObj.Execute(strText)
For Each objMatch In astrMatches
strResult = strResult & " ..." & objMatch.Value & "..."
Next
GetResultText = Replace(strResult, strSearch, "<b>" & strSearch & "</b>")
End Function
strText = "En massa text med en hel del extra text och text, men inte bara simpel text 12 13 14"
Response.Write GetResultText(strText, "text")
red.
Jag insåg just att det pattern jag angav var aningen felande (det skulle ej ha tagit sökordet om det stog som första, andra, näst sista eller sista ord), men nu är det ändrat. :) Tyvärr kvarstår dock ett problem om sökordet sitter nära inpå varandra... T.ex. blir resultaten av min kod och den textsnutten:
...En massa text med en... ...del extra text och text... ...bara simpel text 12 13...
Jag har dock givit dig en början att arbeta med ;)

