Comprobar coincidencias

Si solo se necesita saber si una cadena encuentra coincidencias con un patrón de búsqueda podemos usar el método patron.test(cadena), que devolverá true si en la cadena existe alguna coincidencia con el patrón o false en caso contrario.

Aunque en realidad es una método lógico, y solo se usa para comprobar concidencias, es posible obtrner estas coincidencias y sus posiciones en la cadena. Para ello usaríamos subpatrones y el propio objeto RegExp con las propiedades $n. Auqneu existen métodos más adecuados como el método exec o los métodos de búsqurda de string

Pero cuidado por que el objeto RegExp no se resetea, cada búsqueda actualiza las variables $n existentes. Si en una búsqueda no existe RegExp.$2, su valor anterior se mantiene.

var datos = "4200 300 25 2350";

var patron;

patron = /\b([1-9]\d{1})\b/

console.log("Algún número menor que 100" + patron.test(datos))

console.log("Primero "+RegExp.$1)

datos = "4200 1300 2245 2350";

patron = /\b([1-9]\d{1})\b/

console.log("Algún número menor que 100" + patron.test(datos))

console.log("Primero "+RegExp.$1)

Como ves en la segunda búsqueda RegExp.$1 mantiene su valor anterior, pese a que el resultado de la búsqueda es false. Se podría resetear haciendo una búsqueda sin subpatrones, pero en general estas variables solo se deben usar en substituciones con los métodos del objeto string

var codigo = "Madrid 28000";

var patron;

patron = /(^[a-z]+)\s*([0-9]{5})/i;

codigo.replace(patron, "$2 - $1")

En este sencillo ejemplo se intercambian los valores de la variable codigo, usando las vraibles RegExp.$1 y $2 (en este método no se neceista usar el prefijo RegExp)

scripts