El unpacking de valores con expresiones regulares en Javascript nos permite analizar una cadena de texto y extraer partes de ellas dejándolas directamente en variables que podamos utilizar en nuestro código fuente. Esto es posible gracias a los operadores de desestructuración que nos ofrece Javascript.
Lo primero será tener una cadena para extraer información. La cadena será la siguiente:
var cadena = 'Buenos días Juan, ¿Te gustó Ávila?';
Cómo podemos apreciar hay dos partes que son las que vamos a intentar extraer, estas son el nombre de la persona a la que saludamos y la otra será la ciudad sobre la que le preguntamos. Es decir, otra cadena podría ser:
var cadena = 'Buenos días Sonia, ¿Te gustó Zamora?';
Lo siguiente será definir la expresión regular que nos ayude a detectar estos dos grupos. Esta será la expresión regular:
/días ([^]+),[^]+gustó ([^]+)\?/
Vemos que entre paréntesis se definen los grupos que queremos extraer, el resto corresponden con los literales específicos de la cadena. Cuando ejecutamos esta expresión regular con el método .exec()
lo que vemos es que se nos devuelve un array con varias posiciones.
var cadena_analizada = /días ([^]+),[^]+gustó ([^]+)\?/.exec(cadena);
console.log(cadena_analizada);
La salida del array es:
[ ‘días Juan, ¿Le gustó Ávila?’,
‘Juan’,
‘Ávila’,
index: 7,
input: ‘Buenos días Juan, ¿Le gustó Ávila?’ ]
Vemos que la primera parte es la cadena completa, seguida por los grupos que detectan las palabras buscadas.
Ahora es cuando tenemos que hacer la desestructuración del array.
var [,nombre,ciudad] = cadena_analizada;
Utilizamos una coma de inicio para que ignore la primera posición, y luego dejamos las variables nombre y ciudad. En este momento directamente podemos utilizar estas variables que serán las que tengan el contenido extraído por la expresión regular.
console.log(nombre);
console.log(ciudad);
Vemos que de esta forma tan sencilla podemos hacer un unpacking de valores con expresiones regulares en Javascript.