Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2008, 14:00
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Problema con RegExp

Hola

El problemas me lo provoca los caracteres acentuados.

Me explico

Código HTML:
marca = Trim(Request.QueryString("clave")) 'recoge valor del form, el valor está codificado con escape

IF marca = "" then
%>
<%=unescape(rs.Fields("txt"))%>
<%
ELSE
array_cadena  = Split(marca," ")
Function ResaltaParam(base)
strOriginal = unescape(rs.Fields("txt")) 'descodifico el campo BD
For i=0 to UBound(array_cadena)
paraBusq = "\b("&array_cadena(i)&")\b"
Dim objRegExp 
Set objRegExp = new RegExp
With objRegExp
.Pattern = paraBusq
.IgnoreCase = True
.Global = True
End With
base = objRegExp.replace(strOriginal, "<span class=""BC"&i&""">$1</span>")
ResaltaParam = base
Set objRegExp = nothing
Next 'i
End Function
%>
<%=ResaltaParam(strOriginal)%>
<%
END IF
%> 
Bien, todo funciona hasta que ha de encontrar la cadena "sí" recogida desde el form "s%ED".
En este caso se marca, por ejemplo, la cadena "así", aunque en la BD aparece como "as%ED".
Lo que me dice que el problema está en la expresión que estoy usando \b("&array_cadena(i)&")\b

¿Qué he de hacer para que si busco en la BD la palabra "ón" me encuentre solamente "ón" y no "camión"?

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />