RegExp como string

Existen dos formas de obtener la representación en forma de cadena de una expresión regular

  • Propiedad source: Obtiene la cadena del patrón sin las barras ni flags
  • Método toString(): Cadena string del patrón completo

La propiedad source solo devuelve la parte del patrón descriptiva de la búsqueda, es decir, la parte que se encerraría entre las barras inclinadas y eliminando la barra de escape. No da información sobre las flags o modificadores, para estos tendríamos que usar el método flags()

El método toString() sobreescribe al heredado de Object y devuelve la cadena completa del patrón, incluídas las barras y las flags.

Veamos en un ejemplo las distintas posibilidades que podemos encontrarnos

var expreg1 = /\d+A/ig;

var expreg2 = new RegExp("\\d+A", "ig");

console.log("Source "+ expreg1.source);   //   "\d+A"

console.log("toString "+ expreg1.toString() );   //    "/\d+A/ig"

console.log("Source "+ expreg2.source);   //   "\d+A"

console.log("toString "+ expreg2.toString() );   //    "/\d+A/ig"

En el ejemplo ambas expresiones regulares son iguales, solo cambia la forma de crearlas. Como ves la propiedad source no inluye los flags y elimina las barra usadas para escapar caracteres ( \ ).

Por su parte el método toString() si devuelve toda la exprsión regular completa en una cadena, aunque también elimina la barra de escape ( \ ).

scripts