właśnie się dowiedziałem, że w JS regexpy przetrzymują stan po execu XD jak się używa flagi g
const rx = /strims(\.ru|\.pl)/g
rx.exec(str);
rx.exec(str); // takiego wała, nie zmatchujesz, musisz zresetować lastIndex w obiekcie regexpowym albo pozbyć się flagi xD
@sens:
Nie rozumiem, czego nie można?str = 'strims.pl strims.ru'
rx = /strims(\.ru|\.pl)/g
x = rx.exec(str);
y = rx.exec(str);
console.log({ x, y })
Wypluwa:{ x: Array [ "strims.pl", ".pl" ], y: Array [ "strims.ru", ".ru" ] }
@Deykun:const rx = /(?<color>#[0-9a-f]{3}(?:[0-9a-f]{3})?)/g;
const strings = ['#aaa', '#bbb', '#f00f00', '#abcdef'];
for (let str of strings) {
const match = rx.exec(str)?.groups;
console.log(match?.color)
}
co drugi jest undefined