[ Foro de Javascript ]

JavaScript y expresiones regulares

17-Apr-2022 16:54
Invitado (Pepito Gil)
1 Respuestas

Porqué ocurre esto en JavaScript:

const a = ' ';
const r = /\s+/gm;
const b = r.test(a);
const c = r.test(a);
const d = r.test(a);
const e = r.test(a);
const f = r.test(a);

console.log(b, c, d, e, f)
-> true false true false true

en vez de:

-> true true true true true


18-Apr-2022 13:42
Nacho Cabanes (+84)

Me temo que es culpa del modificador "g". Si lo quitas, verás que obtienes el resultado esperable, porque la búsqueda se reinicia desde el principio cada vez.

Si dejas en ese modificador, tras el primer espacio (true) se acaba la cadena y no hay más espacios (false), así que vuelve a recolocarse al principio, y vuelve a encontrar un espacio (true) y así sucesivamente.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)