⊗jsSpREStri 134 of 294 menu

Cadena con expresión regular en JavaScript

Las expresiones regulares pueden representarse en forma de cadenas. Esto es útil en el caso de que necesites hacer inserciones de variables en las expresiones regulares, o formarlas dinámicamente.

Veamos un ejemplo. Supongamos que tenemos la siguiente cadena:

let str = 'img.png';

Supongamos que a esta cadena le aplicamos la siguiente expresión regular:

let reg = /\.(png|jpg)$/; let res = str.match(reg);

Reescribamos esta expresión regular en forma de cadena. Esto se hace mediante un objeto especial RegExp:

let reg = new RegExp('\.(png|jpg)$'); let res = str.match(reg);

Ahora extraigamos una parte de la expresión regular a una variable y insertémosla usando concatenación:

let pat = 'png|jpg'; let reg = new RegExp('\.(' + pat + ')$'); let res = str.match(reg);

Y ahora insertemos la variable usando cadenas de plantilla:

let pat = 'png|jpg'; let reg = new RegExp(`\.(${pat})$`); let res = str.match(reg);

Y ahora formemos parte de la expresión regular a partir de un array:

let exts = ['png', 'jpg']; let pat = exts.join('|') let reg = new RegExp(`\.(${pat})$`); let res = str.match(reg);

Tareas prácticas

Extraiga los nombres de las zonas de dominio a una variable separada:

let reg = /^[a-z]+\.(ru|by|ua)$/; let res = reg.test(str);

Modifique la tarea anterior teniendo en cuenta que las zonas de dominio se almacenan en forma de array:

let arr = ['ru', 'by', 'ua'];
uzhikkfrms