Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/09/2007, 09:52
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 6 meses
Puntos: 45
Re: Expresiones regulares

Hola

Quizás así:
Código PHP:
<script type="text/javascript">
// Funciona
var = /(^|s)palabra(s|$)/;

// No funciona
var p2 = new RegExp("(^|\\s)palabra(\\s|$)");

var 
palabra "palabra ";
var 
t1 p.test(palabra);
var 
t2 p2.test(palabra);
document.write(t1+", "+t2);

</script> 
Recuerda que lo que le pasas a RegExp() es un string, y que si hacemos un alert() de "hola que \stal" nos dirá: ""hola que stal", es decir, nos pasará por alto la contrabarra porque ésta significa que estamos escapando la s. Para escapar la contrabarra, necesitamos escapar la contrabarra (con otra contrabarra):
alert("hola que \\stal"); ==> "hola que \stal"


Con un alert(pattern2) habrías visto el fallo enseguida.

En esta página -un poquito rarita, todo hay que decirlo- hay un apartado llamado TURNING IMPLICIT INTO EXPLICIT que comenta más ampliamente eso del escapado.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.