Foros del Web » Programando para Internet » Javascript »

Pasar directamente una variable a RegEx

Estas en el tema de Pasar directamente una variable a RegEx en el foro de Javascript en Foros del Web. Hola señores Estoy preparando una función que reemplaza todos los carácteres de un string por sus html-numbers, de manera que "1" sea reemplazado por "& ...
  #1 (permalink)  
Antiguo 06/11/2011, 11:15
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Pasar directamente una variable a RegEx

Hola señores

Estoy preparando una función que reemplaza todos los carácteres de un string por sus html-numbers, de manera que "1" sea reemplazado por "& # 4 8 ;" o que "@" sea reemplazado por "& # 6 4 ;".

El caso es que tengo todos los carácteres a evaluar en un array, pero se me complica porque que al hacer esto:

Código HTML:
var txEvl = '1';
var txOut = '& # 4 8 ;';

var rgx = /txEvl/g; /* Problema acá */
var rpl = txEvl;
rpl = rpl.replace(rgx, txOut);

console.log( rpl );
Me devuelve "1", pero cuando aplico esto:

Código HTML:
var rgx = /1/g;
Me devuelve "& # 4 8 ;" como debe ser. NOTA: Dejé espacios en los encode ("& # 4 8 ;") porque el navegador los muestra como carácteres legibles si están juntos.

¿Existe alguna alternativa para pasarle una variable al RegEx en vez de aplicarlo directo?

Gracias anticipadas a cualquier ayuda o idea que me puedan ofrecer.
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 06/11/2011 a las 11:20
  #2 (permalink)  
Antiguo 06/11/2011, 16:18
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Pasar directamente una variable a RegEx

yo veo dos maneras

usando el constructor
Cita:
new RegExp(variable, 'flag');
o usar un objeto y recorrerlo
Cita:
var rpl = '1 otro texto @ otro texto 1 @';
var rem ={
'1':'0',
'@':'@'
};

var buscar = '1';

for (var c in rem){
while(rpl.indexOf(buscar)!=-1){ // si quieres buscar por todos, en el indexOf el key "c"
rpl=rpl.replace(c, rem[c]);
}
}

console.log(rpl);
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 06/11/2011, 16:57
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Pasar directamente una variable a RegEx

IsaBelM: En efecto, me funcionó muy bien con el constructor. Te agradezco tu sugerencia, me sirvió de mucho.
__________________
JuniHH
- Mi blog
- Mi portafolio

Etiquetas: html, regex, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:39.