Saltar al contenido

¿Cómo comparar dos expresiones regulares?

Jimena, parte de este equipo de trabajo, nos ha hecho el favor de redactar este escrito porque conoce perfectamente el tema.

Solución:

Prueba esto:

String(regexp1) === String(regexp2))

Te estás poniendo false porque esos dos son objetos diferentes.

“Problema”:

regex es un object– a tipo de referenciaentonces el la comparación se hace por referenciay esos son dos objetos diferentes.

console.log(typeof /a/); // "object"

Si ambos operandos son objetos, JavaScript compara las referencias internas que son iguales cuando los operandos se refieren al mismo objeto en la memoria.

MDN

Solución:

​var a = /a/;
var b = /a/;
console.log(​​​a.toString() === b.toString()); // true! yessss!

Demo en vivo

Otro “truco” para forzar el toString() sobre el regexes:

console.log(a + "" === b + "");​

Solo una suposición, pero JavaScript no crea un RegExp object para su expresión regular y, por lo tanto, debido a que ha creado dos objetos diferentes (aunque tienen el mismo “valor”), ¿son realmente diferentes?

Si conservas algún reparo y capacidad de aumentar nuestro noticia te proponemos añadir una ilustración y con mucho placer lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *