Ciao a tutti,
se ho una stringa contenente una parola chiave che voglio sottolineare in un testo, come consigliate di procedere? Purtroppo un semplice replace risulterebbe case sensitive, mentre a me serve case insensitive: sapete aiutarmi?
Grazie!
Ciao a tutti,
se ho una stringa contenente una parola chiave che voglio sottolineare in un testo, come consigliate di procedere? Purtroppo un semplice replace risulterebbe case sensitive, mentre a me serve case insensitive: sapete aiutarmi?
Grazie!
spero di no ma devi fare tutti i tentativi
Prima maiuscola, tutte minuscole, tutte maiuscole![]()
banalmente con un replace
oppure usi le regular expression (caldamente consigliato)...però non mi azzardo nel dirti il pattern visto le mie ultime esperienzecodice:testo="ciao a tutti amici sono pieno di Amici qui intorno AmIcI" wordToFind="amici" wordReplace="<span style=""text-decoration:underline"">amici</span>" testo=replace(testo,wordToFind,wordReplace,1,-1,1) response.write testo![]()
Però in questo modo mi sostituisce tutte le parole trovate con parole sottolineate, ma scritte in minuscolo, a me serve che venga scritto l'originale... cmq ho risolto facendo una funzione un po' complicata, ma pare funzionare.
Penso possa essere utile a tutti se ci facessi vedere come hai risolto!
![]()
Ho creato questa funzione:
sTestorim è la variabile con il testo di input, aParole l'Array con le parole chiave da evidenziare e sTestodom il testo con le parole chiave evidenziate.
Lo stile del tag <span> deve essere specificato così:
<style type="text/css">
<!--
span
{
background-color: #E0F1FF;
}
-->
</style>
<%
'evidenzia le parole chiave nella domanda
sTestorim = rric("TESTO")
for i = 0 to uBound(aParole)
e = 1
sTestodom = ""
if InStr(e, uCase(sTestorim), uCase(aParole(i))) <= 0 then
sTestodom = sTestorim
else
do while(InStr(e, uCase(sTestorim), uCase(aParole(i))) > 0)
'se la prima parola non è tra le parole chiave scrive nella stringa la parte antecedente
if InStr(e, uCase(sTestorim), uCase(aParole(i))) <> 1 then
sTestodom = Mid(sTestorim, e, InStr(e, uCase(sTestorim), uCase(aParole(i))) - 1)
end if
'scrive la parola chiave evidenziandola
sTestodom = sTestodom&"<span>"&Mid(sTestorim, InStr(e, uCase(sTestorim), uCase(aParole(i))), Len(aParole(i)))&"</span>"
'bisogna inserire la parte di testo dopo quella modificata e ripetere il ciclo fino alla fine
e = e + InStr(e, uCase(sTestorim), uCase(aParole(i))) + Len(aParole(i)) - 1
sTestorim = Mid(sTestorim, e, Len(sTestorim) - e + 1)
'se nel testo rimanente non ci sono parole chiave, lo aggiunge alla stringa
if sTestorim <> "" and InStr(e, uCase(sTestorim), uCase(aParole(i))) <= 0 then
sTestodom = sTestodom&sTestorim
end if
loop
sTestorim = sTestodom
end if
next
%>
OK io azzardo la risposta, poi non vi lamentate se ilmio pattern fa schifo
codice:function RegExpReplace(stringa,parola) set re=new RegExp re.ignoreCase=true re.Global=true re.pattern="\b(" & parola & ")\b" stringa=re.replace(stringa,"<span style=""text-decoration:underline"">$1</span>") set re=nothing RegExpReplace=stringa end function parolaDasottolineare="pippo" testo="ciao a tutti.Pippo mi ha detto di andare da pippo e di dire che PiPPo si droga" response.Write RegExpReplace(testo,parolaDasottolineare)
Fa schifo!![]()
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
almeno ci provo IOOriginariamente inviato da Roby_72
Fa schifo!![]()
Roby![]()
![]()
io gliel'avevo detto di farsi una regExp![]()